mysql_fetch_array error - Недопустимый ресурс результатов MySQL - PullRequest
2 голосов
/ 26 июля 2011

Я очень новичок в PHP, пытаюсь написать скрипт, который подключается к базе данных MySQL и просто отображает содержимое в виде списка под каждым заголовком;

Моя таблица содержит поля идентификатора (AutoIncrement), FName, SName и EAddress.

База данных называется iphonehe_MGFSales, а имя пользователя - iphonehe_MGFSale - я добавил пользователя в БД с полными привилегиями.

Я пытаюсь установить соединение с БД с помощью функции mysql с этим кодом;

mysql_connect ("localhost", "iphonehe_MGFSale", "xxxxxxx") or die ('I cannot connect to the database because: ' . mysql_error());
mysql_select_db ("iphonehe_MGFSales");

Созданная мной таблица называется MGFSales DB. Я использую этот код, чтобы попытаться построить запрос;

$query = mysql_query("SELECT * FROM MGFSales_DB");

И, наконец, я пытаюсь отобразить результаты, используя следующий код;

while ($row = mysql_fetch_array ($query)) {
echo "<br /> ID: " .$row['ID']. "<br /> First Name: ".$row['FName']. "<br /> Last Name: ".$row['LName']. "<br /> Email: ".$row['EAddress']. "<br />";
}

Я назвал файл index.php и загрузил его на свой сервер, при запуске я получаю следующую ошибку «Предупреждение: mysql_fetch_array (): предоставленный аргумент не является допустимым ресурсом результата MySQL в / home / iphonehe / public_html / pauldmorris. co.uk/mgf/index.php в строке 16 '

Кто-нибудь указывает мне правильное направление? Строка 16 моего кода кажется довольно узкой из того, что я вижу, я что-то пропускаю? Спасибо

Ответы [ 5 ]

3 голосов
/ 26 июля 2011

это из-за нулевого ресурса, найденного в $ query .. Вы должны проверить это, как показано ниже: код

$query = mysql_query("SELECT * FROM MGFSales_DB"); or die("Error: ". mysql_error(). " with query ");

if(mysql_num_rows($query) > 0 ){
 while ($row = mysql_fetch_array ($query)) {
echo "<br /> ID: " .$row['ID']. "<br /> First Name: ".$row['FName']. "<br /> Last Name: ".$row['LName']. "<br /> Email: ".$row['EAddress']. "<br />";
 }
}

ИЛИ вы также можете сослаться на эту ссылку

Попробуйте это может помочь вам.

Спасибо.

2 голосов
/ 10 мая 2018

Ошибка только в строке mysql_fetch_array, исправление которой должно стать первым шагом в устранении неполадок.

изменить mysql_fetch_array на

mysqli_fetch_array

, потому что последние обновления в mysql или php не принимают mysql, а принимают только mysqli. Также измените везде mysql на mysqli в вашем коде.

1 голос
/ 26 июля 2011

Вы не должны применять mysql_fetch_array напрямую ..

вы должны сначала проверить данные ..

if(mysql_num_row($query)>0){
   your code   
}
else{
   echo 'it brings no data....';
}

он проверяет, нет ли данных, тогда он будет выполнен, иначе блокирует васбудет иметь гладкое исполнение ...

1 голос
/ 26 июля 2011

Проверьте код возврата на mysql_select_db.

1 голос
/ 26 июля 2011

mysql_query возвращает false в случае сбоя, что приведет к ошибке, которую вы получаете во время mysql_fetch_array.

Пожалуйста, добавьте некоторую проверку ошибок в свой код и распечатайте / запишите сообщения об ошибках - ничего не поделаешь, не зная, что это за ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...