Ubuntu / PHP / MySQL: mysql-функции не работают? - PullRequest
2 голосов
/ 14 августа 2011

Я недавно установил Ubuntu на моем сервере, заменив Windows. Мой сайт работал нормально под Windows / XAMPP, но не с Ubuntu. Я попробовал простое соединение с БД:

<?php
    $con = mysql_connect("localhost", "root", "mypassword") or die ("connection error");
    mysql_select_db("db1", $con) or die ("db selection error");
    $qry = mysql_query("SELECT * FROM atable");
    while($row = mysql_fetch_object($qry)) {
        echo $row->id;
    }
?>

но когда я загружаю страницу, ничего не происходит. PHP работает отлично,

<?php echo "test"; ?>

работает как положено ...

Мои настройки (для целей тестирования):

  • Ubuntu 11.04 и LAMP
  • адрес привязки mysql в my.cnf установлен на 0.0.0.0
  • хост root-пользователя mysql имеет значение%, привилегии предоставляются .
  • extension_dir для php5 имеет значение "/usr/lib/perl5/auto/DBD/mysql/mysql.so"

что я пропускаю / делаю неправильно?

Ответы [ 3 ]

2 голосов
/ 18 сентября 2011

Вы установили пакет php-mysql? Если нет, пожалуйста, установите его. В Ubuntu вы найдете его в Диспетчере пакетов (найдите php-mysql) или выполните

sudo apt-get install php-mysql

После установки перезапустите веб-сервер, если необходимо, используя

sudo /etc/init.d/apache2 restart
0 голосов
/ 28 апреля 2013

Запустите следующий код, чтобы узнать, есть ли у вас поддержка mysql в Apache и php:

<?php
if (function_exists('mysql_connect')) {
    echo "Good<br />\n";
} else {
    echo "Bad.<br />\n";
}
?>

Если нет, то вам нужно:

sudo apt-get install php5-mysql

и затем перезапустите Apache , чтобы код заработал

sudo service apache2 restart

Источник: http://bytes.com/topic/php/answers/869918-mysql_connect-function-isnt-working

0 голосов
/ 15 августа 2011

Вы можете узнать, что вы делаете неправильно, посмотрев на ошибку

if ($qry !== false) {
    while($row = mysql_fetch_object($qry)) {
        echo $row->id;
     }
} else echo mysql_errno() . ': ' . mysql_error();

Но помните, что запрос может вернуть пустой набор, если ваш запрос просто не соответствует ни одной записи в вашей базе данных. В вашем случае, когда atable пусто, конечно, ничего не может быть возвращено.

...