PHP і MySQL не спілкуються


9

Я дійшов висновку, що моя PHP-установка та моя MySQL-інсталяція не ладяться; Я працюю над створенням своєї першої веб-сторінки, яка використовує MySQL для вмісту, але через два дні, підручні сторінки, онлайн-документація та десятки навчальних посібників я просто не можу змусити PHP / MySQL частина працювати. У мене є створений домашній веб-сервер (я єдиний адміністратор / користувач), який запускає Apache і розміщує мої веб-сторінки. У мене встановлено MySQL, і я міг створити і запитувати базу даних через Термінал. У мене встановлено PHP, і я можу використовувати ехо для друку тексту в документ. Однак, коли я працюю з MySQL, все змінюється ...

У мене є сторінка, на якій містяться ініціалізаційні матеріали. містить кілька абзаців жорсткого коду HTML, а потім PHP-код для доступу до MySQL. Коли я вперше завантажив сторінку, все, що вийшло, було порожньою. Я прокоментував розділ PHP і перезавантажився, щоб підтвердити, що звичайний HTML все ще працює, що і зробив. Тому деяка частина PHP зберігала будь-яку сторінку з будь-якої завантаження.

Для початку усунення несправностей з кодом я залишив коментований весь код PHP, за винятком наступного коду для підключення до сервера, адаптованого з декількох різних навчальних посібників:

<?
echo("<p>PHP is working</p>"); 
$ses = mysql_connect("localhost","username","password");
if(!$ses){
 echo("<p>Connection to content server failed.</p>");
 exit();
}
echo("<p>Database Connected</p>");
?>

Коли сторінка завантажується, початковий HTML завантажується на додаток до абзацу з написом "PHP працює", але не з'являється жодного повідомлення про помилку чи успіх. Я вилучив з коду структуру If - так що залишилося лише два відлуння і mysql_connect - і отримав той самий результат.

Здається, що функція mysql_connect змушує сервер перестати завантажувати код під час його запуску, але я не маю ідеї, як це виправити. Для запису: я змінив файл php.ini, щоб він включав рядок "connection = msql.so", і використовую MySQL 5.5, Apache 2.2.22, PHP 5.3.10, Ubuntu 12.04. Крім того, і мій маршрутизатор, і модем були налаштовані для переадресації порту 3306 на сервер - хоча я не бачу, як це потрібно, - і моє ім'я користувача та пароль MySQL були перевірені втричі і ідентичні тим, які я успішно використовую у Терміналі.

Що я пропускаю?


1
Замініть "ім'я користувача" та пароль на правильне ім'я користувача (можливо, root) та пароль
Tachyons

2
Так, я це зробив. Я просто не думав, що було б гарною ідеєю викинути ім’я користувача та пароль на форум. Як я вже говорив наприкінці, я перевіряв Ім'я користувача та пароль МНОГО разів, щоб переконатися, що вони відповідають тому, що я використовую для успішного створення, доступу та редагування бази даних через Термінал.
Кейсі Ханглер

Я також спробував замінити localhost на 127.0.0.1, а також локальні та глобальні IP-адреси сервера, але жоден з них також не змінився.
Кейсі Ханглер

1
Ви встановили php5-mysql?
Лоран

Я майже впевнений, але спробую ще раз.
Кейсі Ханглер

Відповіді:


9

Все виглядає нормально, тому я думаю, що ваша установка не завершена. Щоб спілкуватися з mysql та php, вам потрібно встановити php5-mysql пакет:

sudo apt-get install php5-mysql

NB: Мені довелося перезавантажити комп’ютер, перш ніж це спрацювало.
користувач124384

3

Встановіть php5-mysqlпакет і використовуйте mysqli_connect замість mysql_connect


Дякую, ще хтось запропонував це, і це спрацювало! Мені цікаво, хоча в своїх пошуках я натрапив на тему mysqli (і PDO зазвичай теж був), що це? Що робить це краще, ніж звичайний mysql?
Кейсі Ханглер

MySQLi - це вдосконалена версія.
сова

Як я знаю, ви повинні використовувати mysqli, як це рекомендує команда php, і mysql_connect вже не в розробці, а лише технічне обслуговування. Я думаю, що mysql_connect не приймає підготовлені заяви, наприклад, та багато іншого.
Лоран


1
sudo apt-get install php5-mysql

Знайти версію Tomcat від /etc/init.d/. Повинен бути файл з назвою tomcat7, отже, 7 - версія

sudo service tomcat7 stop 
sudo service tomcat7 start

Іноді перезавантаження машини допомагає впорядковувати інші проблеми. Після перезавантаження не забудьте запустити:

sudo service tomcat7 start 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.