2009-09-29 1 views
1

Можно создать дубликат:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in selectПроблема с отображением информации о членах из базы данных с помощью mysql и php?

Хорошо У меня есть кусок кода, который по какой-то причине дает мне следующую ошибку.

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in 

Вот код.

$mysqli = new mysqli("localhost", "root", "", "sitename"); 
$dbc = mysqli_query($mysqli,"SELECT * FROM sitename WHERE id='$user_id'"); 
while($row = mysqli_fetch_array($dbc)){ 
$state = $row["state"]; 
$city = $row["city"]; 
$zip = $row["zip"]; 
$bio_body = $row["bio_body"]; 
} 

Если вы можете мне помочь, указав правильный код.

+0

Я предполагаю, что пароль для этого примера оставлен пустым? не имея набора паролей, ваш db будет открыт для всех. http://xkcd.com/327/ –

ответ

3

Ваш mysqli_query возвратил false (что означает ошибку в запросе вообще). Проверьте ошибки MySQL, прежде чем сделать mysqli_fetch_array

+0

Thx, acrosman, мой английский уродливый :) –

0

от того, что я помню, как у используется новый MySQLi

следует использовать у $ mysqli-> запрос() и $ mysqli-> fetch_array() вместо традиционных методов?

или и можно просто удалить новое ключевое слово и сохранить остальное то же самое

+0

Вы можете использовать команды mysqli двумя разными способами: процедурным и OO; они имеют различный синтаксис. – Anax

+0

@Anax .. да, эта часть, которую я знаю .. но я не уверен, что и вы можете смешать их обоих? –

0

ли вы код на самом деле называют SELECT * FROM sitename WHERE id='$user_id'? Я бы предположил, что имя таблицы - это пользователи или участники или что-то в этом роде.

1

Чтобы подумать о том, как сделать что-то интеллектуальное с вашими ошибками, посмотрите на mysqli error function. Этот код должен запускаться и печатать ошибки, но это не очень хороший способ оставить систему в конце (также см. Комментарий выше о пустых паролях).

$mysqli = new mysqli("localhost", "root", "", "sitename"); 
$dbc = mysqli_query($mysqli,"SELECT * FROM sitename WHERE id='$user_id'"); 
if (!$dbc) { 
    // There was an error...do something about it here... 
    print mysqli_error(); 
} else { 
    while($row = mysqli_fetch_array($dbc)){ 
     $state = $row["state"]; 
     $city = $row["city"]; 
     $zip = $row["zip"]; 
     $bio_body = $row["bio_body"]; 
    } 
} 

одно замечание, если вы знакомитесь с PHP и базы данных, я настоятельно рекомендую вам посмотреть в PDO. Он обеспечивает уровень абстракции данных, отсутствующий в старых функциях и объектах MySQL и MySQLi.

Смежные вопросы