Подключен к базе данных, но информация возвращается как bool - PullRequest
0 голосов
/ 18 сентября 2011
mysql_select_db('fireworks', $conn);

$ask = "SELECT * FROM name";
$result = mysql_query($ask, $conn) or die();
while ($info = mysql_fetch_assoc($result));
{
    var_dump($info);
    if (is_array($result)) {
        foreach ($info as $group) {
            print $group;
        } //end foreach
    } else {
        print "fail..";
    }//end debug
} //end while

Я проверил с помощью phpmyadmin и базы данных fireworks У CLEARLY есть таблица с именем 'name'.Когда я использую var_dump, он показывает bool(false).Я слышал, что mysql_fetch_assoc должен возвращать false только в том случае, если для печати больше не осталось значений?

Редактировать: Извините, я должен был включить полный код:

$conn = mysql_connect("localhost", "root") or die(mysql_error());
if ($conn)
{
    print "<h1>CONNECTED!!!!</h1>";
}//end conn

Да,У меня есть информация, указанная в таблице, я проверил название всего:

ID  firstName lastName
1   uraz      The pig
2   Billy     Henson
3   Jean      Jerk
4   Fat       Jerk

Ответы [ 3 ]

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

Ваш код имеет логическую синтаксическую ошибку:

while ($info = mysql_fetch_assoc($result));

В настоящее время это заставляет его циклически проходить по всем строкам, и когда это будет сделано, у вас останется последнее значение (false).

Вы должны иметь:

while ($info = mysql_fetch_assoc($result))
0 голосов
/ 18 сентября 2011

Вы отправляете запрос, извлекаете первую строку и делаете странную проверку:

$result = mysql_query($ask, $conn) or die();
while ($info = mysql_fetch_assoc($result));
{
var_dump($info);
if (is_array($result)) // <--- :-?
{
foreach ($info as $group)
{print $group;} //end foreach
}else{
print "fail..";
}//end debug
} /

Функция mysql_query () возвращает ресурс или логическое значение FALSE , но это никогда не будет массив.

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

Похоже, вы на самом деле не подключались к базе данных mysql, если только вы не оставили этот код отключенным. Кроме того, если ваша таблица пуста или строк больше нет, mysql_fetch_assoc вернет false. Итак, еще раз проверьте, правильно ли вы выбираете данные.

Имеет ли ваш пользователь mysql разрешение SELECT? Пароль правильный? fireworks правильное имя базы данных? Некоторые веб-хосты добавляют имя пользователя вашей учетной записи в качестве префикса ко всем базам данных, поэтому, возможно, у вас есть bnynn_fireworks (кроме имени пользователя вашей учетной записи.)

Я не уверен, как это на самом деле возможно, хотя вы получаете ложь, она даже не должна входить в цикл while.

...