1 (изменено: ozzon91, 2010-02-25 02:04:37)

Тема: mysql_fetch_array(): supplied argument is not a valid MySQL resource

Выдает ошибку Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/ozzon91/www/site/www/sql.php on line 10
при выводе таблицы созданой мною лично, кргда вывожу данные из таблиц созданых автоматом (нк например приустановке некоторых готовых скриптов)
то все работает отлично

<?php
$db=mysql_connect("localhost","root","shapovalenko");
mysql_select_db("site",$db);
?>



<?php
$result = mysql_query("SELECT * FROM table WHERE id='1' ", $db);
$myrow = mysql_fetch_array($result);
?>



<html>
<head>
    <title>Base</title>
</head>

<body>
<?php echo $myrow['text']; ?>

   
</body>
</html>

2

Re: mysql_fetch_array(): supplied argument is not a valid MySQL resource

добавил такие строки

if (!$result) {
   echo 'Invalid query: ' . mysql_error() . "\n";
} else echo 'true'

стало выдавать

Invalid query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table WHERE id='1'' at line 1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/ozzon91/www/site/www/sql.php on line 13

3

Re: mysql_fetch_array(): supplied argument is not a valid MySQL resource

ozzon91
table является зарезервированным словом и если ваша таблица так называется, то надо забирать ее в косые кавычки. Если у вас нет желания заучивать все зарезервироанные слова, то забирайте в косые кавычки все имена баз данных, таблиц и полей.

[mono]$result = mysql_query("SELECT * FROM `table` WHERE `id`='1' ", $db);[/mono]

4

Re: mysql_fetch_array(): supplied argument is not a valid MySQL resource

Hanut
Спасибо вы правы проблема решилась.

5

Re: mysql_fetch_array(): supplied argument is not a valid MySQL resource

Такая же проблемма, выдается данная ошибка. Таблица есть и через phpmyadmin запрос отрабатывает нормально. В чем может быть дело? Все названия в запросе взял в косые кавычки.

6

Re: mysql_fetch_array(): supplied argument is not a valid MySQL resource

oleg_inoz сказал:

Такая же проблемма, выдается данная ошибка.

Добавьте в код строку перехватывающую ошибку.

if (!$result) echo mysql_error();

7 (изменено: oleg_inoz, 2010-12-10 11:13:21)

Re: mysql_fetch_array(): supplied argument is not a valid MySQL resource

Пишет, что No database selected. Кусок кода ниже:

    $con = mysql_connect($server, $user, $pass);    //подключаемся к базе//
    mysql_select_db($DB, $con);                ///////////////////////
    
    $query = mysql_query("SELECT * FROM `news` WHERE `status`=`1` ORDER BY `news_time` DESC");
    $result = mysql_fetch_array($query);
    if (!$result) echo mysql_error();

Что здесь не правильно?

8

Re: mysql_fetch_array(): supplied argument is not a valid MySQL resource

oleg_inoz сказал:

mysql_select_db($DB, $con);

Проверьте переменную $DB.

9

Re: mysql_fetch_array(): supplied argument is not a valid MySQL resource

В переменной - название базы. Что-то не понятно, все вроде бы прописано, а выдает No database selected

10

Re: mysql_fetch_array(): supplied argument is not a valid MySQL resource

Проверяем.

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

11 (изменено: oleg_inoz, 2010-12-13 09:59:28)

Re: mysql_fetch_array(): supplied argument is not a valid MySQL resource

Почему-то в имени пользователя добавлены лишние символы: @'%'. Даже когда я прописываю пользователя не через переменную а напрямую в mysql_connect, эти символы добавляются. Откуда они берутся? В других функциях вызов этой процедуры не дает ни каких ошибок. Все один в один

12

Re: mysql_fetch_array(): supplied argument is not a valid MySQL resource

oleg_inoz сказал:

Почему-то в имени пользователя добавлены лишние символы: @'%'.

Через символ @ стоит хост, если вместо хоста указан %, значит разрешено подключение пользователем с любого хоста.

Ошибка "No database selected" достаточно очевидна и не может значить ничего, кроме того, что текущая база данных не выбрана.