php mysql_select_db возвращает пустую страницу - PullRequest
0 голосов
/ 30 июля 2009

Я только начинаю писать этот код, и когда я добавляю в базу данных, выбираю и обновляю страницу, вместо того, чтобы показывать все остальные html на странице или сообщение об ошибке, она просто отображается пустой

Вот что у меня есть ...

$link = mysql_connect('vps2.foo.com:3306', 'remote_vhost30', 'password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db('best_of', $link);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}

$sections_result = "SELECT * FROM sections";
$sections_query = mysql_query($sections_result) or die(mysql_error());
$sections_array = mysql_fetch_array($sections_result) or die(mysql_error());

Приведенный выше код возвращает пустую страницу. Если я закомментирую строку, начинающуюся с $ db_selected, страница загрузится нормально. Очевидно, он ничего не делает с данными, но без ошибок.

В чем проблема? (И да, я подключаюсь к удаленному серверу, но $ link не выдает ошибок)

Ответы [ 3 ]

2 голосов
/ 30 июля 2009

Кстати, я подозреваю, что проблема в том, что PHP выдает ошибку, но вы отключили отображение ошибок - отсюда и отображение пустой белой страницы. Проверьте статус 'display_errors' в вашем файле php.ini.

Примечание: если это рабочий сервер, вы должны оставить display_errors выключенным.

2 голосов
/ 30 июля 2009

Последняя строка кода должна быть:

$sections_array = mysql_fetch_array($sections_query) or die(mysql_error());

Вы пытаетесь извлечь строки из переменной $sections_result, которая является строкой вашего запроса, а не набором результатов.


Включите отчеты об ошибках, с error_reporting(E_ALL), как указано в одном из других ответов.

1 голос
/ 30 июля 2009

Проверьте, действительно ли это та строка, заменив это:

$db_selected = mysql_select_db('best_of', $link);

С этим:

if (! $db_selected = mysql_select_db('best_of', $link)) die('Unable to select database');

Как говорит МитМаро, вы запутали _result и _query. Это может быть лучше:

$sections_query = "SELECT * FROM sections";
$sections_result = mysql_query($sections_query) or die(mysql_error());
$sections_array = mysql_fetch_array($sections_result) or die(mysql_error());

Надеюсь, это поможет:)

...