#php #mysql #database-connection
#php #mysql #подключение к базе данных
Вопрос:
Я пытаюсь подключиться к mysql с помощью PHP, и это вообще не работает.
<?php
$con = mysql_connect('localhost', 'xxxx', 'xxxx');
mysql_select_db("test_site", $con);
$query = mysql_query("SELECT * FROM test");
echo $query;
mysql_close($con);
?>
Весь мой скрипт останавливается сразу после первой строки ($ con = …). Я попытался добавить echo «TEST»; сразу после этой строки, но оно не появилось. Когда я пытаюсь напечатать текст перед этой строкой, он работает нормально. Даже если я добавлю что-то вроде:
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
Ошибка не отображается. Я предполагаю, что это означает, что соединение было в порядке… так почему же мой сценарий останавливается? Когда я делаю то же самое через свой терминал, я получаю * из test, именно то, что мне нужно. Не с PHP.
Помогите? =]
Спасибо
Редактировать:
nvm, нашел способ заставить его работать.
Комментарии:
1. Вы проверили журнал ошибок?
2. проверьте вывод
phpinfo()
… посмотрите наerror_log
настройку.3. error_log: нет значения. Однако журнал ошибок включен.
4. Затем проверьте журнал ошибок apache… PHP использует это по умолчанию.
5. В вашей конфигурации php отсутствует модуль mysql. Вам нужно добавить ‘extension=mysql.so ‘ в вашем файле php.ini (и убедитесь, что mysql.so доступно.) На какой ОС вы работаете?
Ответ №1:
Вам необходимо установить модули mysql php5. Это позволит установить модули и настроить их на PHP в Ubuntu.
sudo apt-get install php5-mysql
Комментарии:
1. Я только что прочитал другие комментарии и узнал, что вы установили из исходного кода. Взгляните на эту страницу, которая поможет вам выполнить установку из менеджера пакетов. help.ubuntu.com/community/ApacheMySQLPHP
2. сделал это и перезапустил apache. mysql_connect все еще не определен.
3. Правильно, потому что вы скомпилировали из исходного кода без поддержки mysql. Это будет намного проще, если вы будете следовать инструкциям на странице справки сообщества Ubuntu.
4. Обычно я использую дистрибутивы на основе RPM. Есть ли в debian / ubuntu поддержка mysql в виде отдельного пакета? нравится php-mysql?
5. @datasage Да, это так. php5-mysql устанавливает mysql.so модуль и настраивает PHP для его использования.
Ответ №2:
mysql_query возвращает ресурс, который не может быть преобразован в строку для echo.
Вместо этого попробуйте var_dump($query).
Комментарии:
1. Откуда вы знаете? поскольку ваш скрипт написан прямо сейчас, ничего не будет отображаться.
2. Вы прочитали остальную часть моего вопроса? Я сказал, что пробовал печатать текст до и после первой строки, и это работало только раньше.
3. Проверьте значения display_errors и ваш уровень error_reporting.
4. Я обнаружил ошибку, в ней говорится, что mysql_connect не определен. Это вообще не имеет смысла.
5. Тогда расширение mysql не включено. Как вы это включите, зависит от вашей среды и того, как установлен PHP.
Ответ №3:
У вас на сервере запущен MySQL, верно? Пока вы передаете правильный хост / пользователя / передачу, это не должно быть просто ошибкой…