PHP и MySQL не общаются

9

Я пришел к выводу, что моя установка PHP и установка MySQL не уживаются; Я работаю над созданием моей первой веб-страницы, которая использует MySQL для контента, но после двух дней, man-страниц, онлайн-документации и десятков учебников, я просто не могу заставить работать часть PHP / MySQL. У меня установлен домашний веб-сервер (я единственный администратор / пользователь), на котором работает Apache и размещаются мои веб-страницы. У меня установлен MySQL, и я смог создать и запросить базу данных через терминал. У меня установлен PHP, и я могу использовать echo для печати текста в документе. Однако когда я работаю с 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 из кода - так, чтобы остались только два echos и 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
Laurent
источник
NB: мне пришлось перезагрузить компьютер, прежде чем это сработает.
user124384
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 
user144880
источник