Ошибка is not a valid mysql

I have a simple script to check how many files a user has uploaded:

$sql = "SELECT * from $username where file IS NOT NULL";
$result = mysql_query($sql);
$count=mysql_num_rows($result);

If the table $username does not have any rows where file is not null it spits out:

«Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in…»

What can I do to avoid this? Is there an easy way to simply suppress this error message from displaying? or a simple «if» statement that could prevent the SQL query from happening in the first place?

asked Jun 19, 2012 at 19:20

user187680's user avatar

3

You could do something like this:

<?php
 $sql = "SELECT * from $username where file IS NOT NULL";
 $result = mysql_query($sql);
 if($result) 
 {
     $count=mysql_num_rows($result);
 }
 else 
 {
     $count = 0;
  }

OR use a shorthand:

<?php 
 $count = ($result) ? mysql_num_rows($result) : 0;

Note:

Like you can see in other comment’s, this is just an answer to your question, taking care of one problem at a time. The usage of $username here can be tricky, especially if it’s dynamic or user generated content. It’s best to look at some long term improvements to the way you interact with the database, but here’s the fix for now ;-)

PS.
If you’re not feeling like learning all the new stuff, perhaps a framework, something like Codeigniter could help you. Using it’s active record class is easy and it takes care of a lot of things itself.

answered Jun 19, 2012 at 19:23

Robert's user avatar

RobertRobert

1,8991 gold badge17 silver badges24 bronze badges

2

Suppressing the errors is the last thing you want to do. You should be handling them.

$sql = 'SELECT * FROM ' . mysql_real_escape_string($username) . ' WHERE `file` IS NOT NULL';
$result = mysql_query($sql);

if ($result !== false) {
    $count=mysql_num_rows($result);
} else {
    // An error occurred, handle it here.
}

Also, it is terrifying that you are using dynamic table names. Don’t do this!

In addition, you are likely wide open to SQL injection. Learn to use prepared queries with PDO to avoid this problem.

answered Jun 19, 2012 at 19:24

Brad's user avatar

BradBrad

158k53 gold badges345 silver badges527 bronze badges

In simplest way you can do mysql_query($sql) or die("invalid sql"); or put a try / catch.

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
if (!mysql_select_db('database_name')) {
    die('Could not select database: ' . mysql_error());
}
$result = mysql_query('SELECT name FROM work.employee');
if (!$result) {
    die('Could not query:' . mysql_error());
}
echo mysql_result($result, 2); // outputs third employee's name

mysql_close($link);
?>

I think above code from http://www.php.net/manual/en/function.mysql-result.php speaks what you need.

Here, if (!$result) {...} is the key.

answered Jun 19, 2012 at 19:25

deej's user avatar

deejdeej

2,5264 gold badges29 silver badges51 bronze badges

0

A simply way to suppress this error is putting a @ before mysql_query and mysql_num_rows, but it is not recommended, you should make a proper error treatment

answered Jun 19, 2012 at 19:24

Vinicius Tavares's user avatar

$result will be false if you had an error running your query so check for that before trying to use it:

if $result === false)
{
     // stuff went boom!
}

answered Jun 19, 2012 at 19:24

John Conde's user avatar

John CondeJohn Conde

217k99 gold badges455 silver badges496 bronze badges

You could try the @ symbol. So your call to mysql_query would now look like this: $result = @mysql_query($sql);.

Update

As has been stated elsewhere (specifically as a comment to this answer), you should not suppress errors unless you know what you are doing.

Update 2

Here are the docs for the Error Control Operators

answered Jun 19, 2012 at 19:24

Eric H's user avatar

Eric HEric H

1,10016 silver badges32 bronze badges

1

#1 10.10.2011 00:48:51

shrimp
Участник
Зарегистрирован: 10.10.2011
Сообщений: 3

Ошибка supplied argument is not a valid MySQL… что делать?

Обновлял вордпресс и видимо что-то пошло не так!
теперь админка не работает..выдает ошибку:

Warning: mysql_get_server_info(): supplied argument is not a valid MySQL-Link resource in /home/users1/y/yanshrimp/domains/yantheshrimp.com/wp-includes/wp-db.php on line 1550

в коде:

    function db_version() {
      return preg_replace( ‘/[^0-9.].*/’, », mysql_get_server_info( $this->dbh ) ) ;

__________

FAQ говорит:
2. Возникла ошибка «Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource».
Предыдущий SQL-запрос выполнился с ошибкой. Чтобы узнать причину ошибки, добавьте обработку ошибок в скрипт
$result = mysql_query($sql) or die(mysql_error());

Сделал…ничего не изменилось!!!!

СПАСАЙТЕ, ПОМОГАЙТЕ!!

Неактивен

#2 10.10.2011 01:54:00

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 845

Re: Ошибка supplied argument is not a valid MySQL… что делать?

Проверьте, в том ли месте вставлен этот код.
Судя по всему, он должен быть где-то в функции mysql_get_server_info или же в какой-то, которая из нее вызывается — там, где вызов mysql_query().

Неактивен

#3 10.10.2011 10:38:13

shrimp
Участник
Зарегистрирован: 10.10.2011
Сообщений: 3

Re: Ошибка supplied argument is not a valid MySQL… что делать?

так это и есть функция mysql_get_server_info…
Вся странность в том.что тоже такой-же сайт .. на том же хосте обновился без проблем…а этот глючит.

Неактивен

#4 10.10.2011 20:04:09

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 845

Re: Ошибка supplied argument is not a valid MySQL… что делать?

Тогда попробуйте вывести SQL-запрос и выполнить его вручную через консоль mysql или, на худой конец, PHPMyAdmin

Неактивен

#5 10.10.2011 21:11:34

shrimp
Участник
Зарегистрирован: 10.10.2011
Сообщений: 3

Re: Ошибка supplied argument is not a valid MySQL… что делать?

с радостью, если подскажите как этосделать…
я не профессионал в данных вопросах.

Неактивен

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

1 2009-09-21 20:15:39

  • RUB
  • Редкий гость
  • Неактивен
  • Зарегистрирован: 2009-09-21
  • Сообщений: 8

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

<?php
  $result = mysql_query («SELECT id, title, discription, author, date FROM articles», $db);
  $myrow = mysql_fetch_array ($result);                   —  Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
do { 
printf («<table align=’center’ class=’article’>
    <tr>
      <td class=’article_title’><p>%s</p><p>Дата добавления:%s</p><p>Автор урока:%s</p></td>
    </tr>
    <tr>
      <td> </td>
    </tr>
  </table><br><br>», $myrow [«title»], $myrow [«date»], $myrow [«author»], $myrow [«discription»]);
}
while ($myrow = mysql_fetch_array ($result));            — Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

?>

Помогите пожалуйста!!!!!!!!!!!!!!!!!!!!!!!!
Не могу решить проблему

2 Ответ от Hanut 2009-09-22 01:05:47

  • Hanut
  • Hanut
  • Модератор
  • Неактивен
  • Откуда: Рига, Латвия
  • Зарегистрирован: 2006-07-02
  • Сообщений: 9,726

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

RUB

// Сперва надо соединиться с MySQL.
$db = mysql_connect('localhost', 'user', 'password');
// И выбрать текущую БД.
mysql_select_db('db_name', $db);

3 Ответ от RUB 2009-09-22 02:37:15

  • RUB
  • Редкий гость
  • Неактивен
  • Зарегистрирован: 2009-09-21
  • Сообщений: 8

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

Это все прописанно
теперь когда поставил одинарные ковычки в строке
$result = mysql_query («SELECT ‘id’,’title’,’discription’,’author’,’date’ FROM articl», $db);
вылезла в браузере таблица но вместо текста вылезла надпись title

что дальше то делать?

Сообщение добавлено Tue Sep 22 03:39:46 2009
короче в браузере выглядит во так
title
Дата добавления:date
Автор урока:author

4 Ответ от Hanut 2009-09-22 11:28:10

  • Hanut
  • Hanut
  • Модератор
  • Неактивен
  • Откуда: Рига, Латвия
  • Зарегистрирован: 2006-07-02
  • Сообщений: 9,726

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

RUB
Заберите поля и название таблицы в косые кавычки, иначе они воспринимаются, как строки.

SELECT `id`, `title`, `discription`, `author`, `date` FROM `articles`

5 Ответ от RUB 2009-09-22 12:58:37

  • RUB
  • Редкий гость
  • Неактивен
  • Зарегистрирован: 2009-09-21
  • Сообщений: 8

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

<?php
$result = mysql_query («SELECT * FROM articl», $db); — изменил эту строку и проблема решена.
$myrow = mysql_fetch_array ($result);
do {
printf («<table align=’center’ class=’article’>
<tr>
<td class=’article_title’><p>%s</p><p>Дата добавления:%s</p><p>Автор статьи:%s</p></td>
</tr>
<tr>
<td> </td>
</tr>
</table><br><br>», $myrow [«title»], $myrow [«date»], $myrow [«author»], $myrow [«discription»]);
}

while ($myrow = mysql_fetch_array ($result));
?>

6 Ответ от vikont123 2010-01-30 09:23:14

  • vikont123
  • Новичок
  • Неактивен
  • Зарегистрирован: 2010-01-30
  • Сообщений: 1

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

RUB сказал:

<?php
$result = mysql_query («SELECT * FROM articl», $db); — изменил эту строку и проблема решена.
$myrow = mysql_fetch_array ($result);
do {
printf («<table align=’center’ class=’article’>
<tr>
<td class=’article_title’><p>%s</p><p>Дата добавления:%s</p><p>Автор статьи:%s</p></td>
</tr>
<tr>
<td> </td>
</tr>
</table><br><br>», $myrow [«title»], $myrow [«date»], $myrow [«author»], $myrow [«discription»]);
}

while ($myrow = mysql_fetch_array ($result));
?>

проверьте название полей в БД и название полей в поле запроса, где то несоответствие.

7 Ответ от RastamanRub 2010-09-16 17:24:26 (изменено: RastamanRub, 2010-09-16 17:29:38)

  • RastamanRub
  • Редкий гость
  • Неактивен
  • Зарегистрирован: 2010-09-16
  • Сообщений: 4

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

Помогите позжайлуста, не могу понять в чём проблема http://rastamanbux.up100mb.com/ Это мой сайт зайдите посмотрите и помогите советом. За ранее благодарю
[mono]Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/rastaman/public_html/blocks/sitestats.html on line 5

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/rastaman/public_html/blocks/sitestats.html on line 16[/mono]

8 Ответ от Hanut 2010-09-16 18:08:55

  • Hanut
  • Hanut
  • Модератор
  • Неактивен
  • Откуда: Рига, Латвия
  • Зарегистрирован: 2006-07-02
  • Сообщений: 9,726

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

RastamanRub
Посмотрите указанные строки в файле blocks/sitestats.html.

Как я понимаю, проблема связана с отсутствием данных или таблиц в базе данных MySQL.

9 Ответ от RastamanRub 2010-09-17 10:21:00

  • RastamanRub
  • Редкий гость
  • Неактивен
  • Зарегистрирован: 2010-09-16
  • Сообщений: 4

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

Hanut сказал:

RastamanRub
Посмотрите указанные строки в файле blocks/sitestats.html.

Как я понимаю, проблема связана с отсутствием данных или таблиц в базе данных MySQL.

Данные все есть. Как правильно создать таблицу в MySQL?

10 Ответ от Hanut 2010-09-17 20:51:35

  • Hanut
  • Hanut
  • Модератор
  • Неактивен
  • Откуда: Рига, Латвия
  • Зарегистрирован: 2006-07-02
  • Сообщений: 9,726

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

RastamanRub
Таблица должна создаваться при установке скрипта, либо если вы импортировали дамп, то из .sql файла.

Приведенная вами ошибка означает, что SQL запрос не выполняется.

11 Ответ от RastamanRub 2010-09-18 09:53:38

  • RastamanRub
  • Редкий гость
  • Неактивен
  • Зарегистрирован: 2010-09-16
  • Сообщений: 4

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

Спасибо. Щас попробую.

12 Ответ от RastamanRub 2010-09-19 12:10:36 (изменено: RastamanRub, 2010-09-19 12:11:53)

  • RastamanRub
  • Редкий гость
  • Неактивен
  • Зарегистрирован: 2010-09-16
  • Сообщений: 4

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

Подскажите какая ошибка в двух последних строках?
<? include(‘header.php’); ?>

<h3>Активные предложения </h3>
<br>

<?
require(‘config.php’);
$tabla = mysql_query(«SELECT id FROM tb_ads_categories ORDER BY id ASC»); // selecciono todos los registros de la tabla usuarios, ordenado por nombre
mysql_close($con);
while ($registro = mysql_fetch_array($tabla)) { // comienza un bucle que leera todos los registros y ejecutara las ordenes que siguen

Выдаёт такую ошибку:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/rastaman/public_html/surf.php on line 11

13 Ответ от javascr 2011-05-12 23:57:32

  • javascr
  • Редкий гость
  • Неактивен
  • Зарегистрирован: 2011-05-12
  • Сообщений: 2

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

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

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/virtwww/w_tsait-net_27c06625/http/functions.php on line 45  Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/virtwww/w_tsait-net_27c06625/http/functions.php on line 3268

14 Ответ от javascr 2011-05-13 00:00:28

  • javascr
  • Редкий гость
  • Неактивен
  • Зарегистрирован: 2011-05-12
  • Сообщений: 2

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

15 Ответ от Hanut 2011-05-13 00:05:11

  • Hanut
  • Hanut
  • Модератор
  • Неактивен
  • Откуда: Рига, Латвия
  • Зарегистрирован: 2006-07-02
  • Сообщений: 9,726

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

javascr сказал:

по середине 2 ошибки  вот ошибки

Ошибки указывают на файлы и строки в этих файлах. Попробуйте найти эти строки и покажите их и их окружение (пару сверху и снизу).

По сути ошибки: они означают, что функции mysql_fetch_array(), которая должна разбирать полученные из БД данные, передан неверный параметр, который должен быть ссылкой на результаты, но на самом деле ей не является. Причиной может быть отсутствие необходимой таблицы или данных в ней; ошибка в SQL запросе, который не возвращает данные, либо возвращает их не в том виде; ошибка в скрипте, наконец.

16 Ответ от Hanut 2011-05-13 00:14:36

  • Hanut
  • Hanut
  • Модератор
  • Неактивен
  • Откуда: Рига, Латвия
  • Зарегистрирован: 2006-07-02
  • Сообщений: 9,726

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

Обратите внимание на SQL запросы. Попробуйте выполнить их в phpMyAdmin подставив какие-либо значения вместо переменных.

Первый запрос:
SELECT * FROM inv WHERE owner=’$hozyain’ and time_scroll>’0′

Второй запрос:
SELECT * FROM status WHERE login=’$hozyain’

Если вы не знаете что находится в переменной $hozyain, то попробуйте ее отловить временно поставив останавливающую выполнение скрипта функцию выхода. Данная функция вернет содержимое переменной. Будет примерно так:

function test_el($hozyain){
exit($hozyain);

17 Ответ от nefera 2011-10-16 16:11:13

  • nefera
  • Редкий гость
  • Неактивен
  • Зарегистрирован: 2011-10-16
  • Сообщений: 2

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

Помогите разобраться чайнику!
Установила сайт на хостинг, создала базу данных. При открытии сайта выдает ошибку
SQL Ошибка для [select id,zag,datas,kratko from phpshop_news order by id DESC limit 3]
Unknown column ‘zag’ in ‘field list’
При открытии панели управления, хоть база и активна и вся загружена сбоку написано
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/svadbaop/public_html/svadba-love.com/phpshop/admpanel/catalog/tree.php on line 54

18 Ответ от Hanut 2011-10-16 17:15:28

  • Hanut
  • Hanut
  • Модератор
  • Неактивен
  • Откуда: Рига, Латвия
  • Зарегистрирован: 2006-07-02
  • Сообщений: 9,726

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

nefera сказал:

При открытии сайта выдает ошибку

Дословно ошибка означает, что в таблице phpshop_news не найдено поле zag. Причину ошибки я сказать не могу и как ее исправить тоже. Возможно скрипт работал ранее с другой структурой таблиц, либо было включено подавление ошибок и их просто не было видно.

Глобально отключать вывод ошибок я бы не советовал, а локально можно протестировать добавив перед функцией возвращающей ошибку знак «@». Например:

@mysql_fetch_array( ... );

19 Ответ от nefera 2011-10-16 17:16:39

  • nefera
  • Редкий гость
  • Неактивен
  • Зарегистрирован: 2011-10-16
  • Сообщений: 2

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

Спасибо. Буду думать

20 Ответ от nagatin3 2012-02-29 19:04:28

  • nagatin3
  • Редкий гость
  • Неактивен
  • Зарегистрирован: 2012-02-29
  • Сообщений: 2

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

Друзья, помогите!

Хочу сделать запрос из таблицы некоторых данных из формы, которая ссылается на этот скрипт:

<html>
<head>
<title>TITLE</title>
</head>
<body>
<?php
$searchterm   = $_POST["searchterm"];
$searchtype   = $_POST["searchtype"];

trim ( $searchterm );
if (!$searchterm)
   die ("Error 1");

$link = mysql_connect("localhost", "root","") or die("Could not connect");

$db = "product";
mysql_select_db ( $db ) or die ("failed to open $db");
$query = "SELECT * FROM books WHERE ".$searchtype." = '".$searchterm."'";

$result = $query;

$first_row = mysql_fetch_array($result);
echo "First:<br>".$first_row[drop]." - ".$first_row[track]."<br>";
echo "Other:<br>";
while ($row = mysql_fetch_array($result)) {
    echo $row[drop]." - ".$row[track].'<br>';
}


mysql_close ( $link );
?>
</body>
</html>

Выводит ошибку:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:Program Filesxampphtdocs111111search_book.php on line 22
First:
-
Other:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:Program Filesxampphtdocs111111search_book.php on line 25

А вот что пишет mysql_error():

ERROR - 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 'drop = 'cheryl'' at line 1
SELECT * FROM books WHERE drop = 'cheryl'

Как я понял к базе скрипт подключается нормально, даже берет нужные значения, вот только почему-то не выводит их, а выдает ошибку.

21 Ответ от Hanut 2012-02-29 23:16:52

  • Hanut
  • Hanut
  • Модератор
  • Неактивен
  • Откуда: Рига, Латвия
  • Зарегистрирован: 2006-07-02
  • Сообщений: 9,726

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

$result = $query; // Это ошибка
$result = mysql_query($query); // Должно быть так.

drop — это зарезервированное слово, его нельзя использовать в запросах без косых кавычек. Всегда забирайте имена таблиц и полей в косые кавычки. Правильно так:

SELECT * FROM `books` WHERE `drop` = 'cheryl'

Еще один совет — всегда пишите ассоциативные массивы с кавычками таким образом.
$first_row[drop] // Не правильно
$first_row[‘drop’] // Правильно

22 Ответ от nagatin3 2012-03-01 06:33:36

  • nagatin3
  • Редкий гость
  • Неактивен
  • Зарегистрирован: 2012-02-29
  • Сообщений: 2

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

Огромное спасибо! Единственный форум где мне помогли.

23 Ответ от ANDREI051073 2013-04-05 15:14:03

  • ANDREI051073
  • Редкий гость
  • Неактивен
  • Зарегистрирован: 2013-04-05
  • Сообщений: 3

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

здравствуйте   помогите  пожалуйста  сайт  выдаёт  ошибку  что делать   —  если  убрать  то  он  откроиться   эти папки  а  так  нет  всё глухо   

sad Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/andre167/domains/kobra2013.ipbux.ru/public_html/sfb.php on line 84

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/andre167/domains/kobra2013.ipbux.ru/public_html/sfb.php on line 358
Unknown column ‘tipo’ in ‘where clause’   sad

24 Ответ от ANDREI051073 2013-10-08 12:04:30

  • ANDREI051073
  • Редкий гость
  • Неактивен
  • Зарегистрирован: 2013-04-05
  • Сообщений: 3

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

помогите  исправить ошибку  нужен запрос   у  меня   нет  его  в  базе данных   

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/u943889324/public_html/sfb.php on line 412

нужно  сделать блокноте   и  закачать в базу  запрос 
public_html/sfb.php

25 Ответ от Hanut 2013-10-08 12:34:20

  • Hanut
  • Hanut
  • Модератор
  • Неактивен
  • Откуда: Рига, Латвия
  • Зарегистрирован: 2006-07-02
  • Сообщений: 9,726

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

ANDREI051073 сказал:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/u943889324/public_html/sfb.php on line 412

Этих ошибок не достаточно, чтобы что-то исправить. Попробуйте обратиться к разработчикам скрипта.

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

rom-scorpion

0 / 0 / 0

Регистрация: 11.07.2009

Сообщений: 40

1

28.10.2009, 18:42. Показов 55014. Ответов 25

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

помогите решить проблему.
хочу вытянуть из базы поле но почему то показывает ошибку
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in … on line 2

вот код:

PHP
1
2
   $lon_query=mysql_query("select long from cities where id_city='1'");
   $lon_result=mysql_fetch_array($lon_query);

в поле long содержатся значение, к примеру такие «-12.453»

что не так?



0



Почетный модератор

11309 / 4283 / 439

Регистрация: 12.06.2008

Сообщений: 12,342

28.10.2009, 18:59

2

В функции mysql_query попробуй добавить второй параметр с результатом выполнения mysql_connect



0



0 / 0 / 0

Регистрация: 11.07.2009

Сообщений: 40

28.10.2009, 19:14

 [ТС]

3

я что то не понял….



0



Humanoid

Почетный модератор

11309 / 4283 / 439

Регистрация: 12.06.2008

Сообщений: 12,342

28.10.2009, 19:59

4

PHP
1
2
3
4
$sql = mysql_connect('127.0.0.1','login','password');
mysql_select_db('basename',$sql);
$lon_query=mysql_query("select long from cities where id_city='1'",$sql);
$lon_result=mysql_fetch_array($lon_query);



1



0 / 0 / 0

Регистрация: 11.07.2009

Сообщений: 40

29.10.2009, 10:19

 [ТС]

5

к сожалению ошибка осталась та самая…



0



0 / 0 / 0

Регистрация: 11.07.2009

Сообщений: 40

29.10.2009, 12:29

 [ТС]

6

Ура! проблема решена.
Спасибо за внимание!



0



Почетный модератор

11309 / 4283 / 439

Регистрация: 12.06.2008

Сообщений: 12,342

29.10.2009, 18:41

7

Как, если не секрет?



1



shadowmaster63

20 / 19 / 1

Регистрация: 20.10.2009

Сообщений: 103

29.10.2009, 20:00

8

у меня та же ошибка было но так и не понял почему так как записи из таблицы выводились корректно!!!

Решил проблему поставив @ перед @mysql_fetch_array($res)

А вообще если вы видете сообщение об ошибке Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in — это означает, что вы не обработали возможные ошибки обработки SQL-запроса, такая ошибка возникла и функциия mysql_query() вернула false вместо дескриптора результирующей таблицы. Далее скрипт передаёт false функции mysql_fetch_array(), на что она естественно огрызается. Следует обработать возможные ошибки для всех функций mysql_query().

PHP
1
2
3
4
5
6
7
8
9
10
11
<?php 
$sql = "select * from users where username='".$_POST["name"]."'"; 
$result = mysql_query($sql); 
if(!$result) 
{ 
  echo "Возникла ошибка - ".mysql_error()."<br>"; 
  echo $sql; 
  exit(); 
} 
// Далее остальной код 
?>



2



0 / 0 / 0

Регистрация: 11.07.2009

Сообщений: 40

02.11.2009, 19:06

 [ТС]

9

$lon_query=mysql_query(«select long from cities where id_city=’1′»,$sql);

поле было с названием long, нужно было его поменять на другое имя, вот и все.

небольшая дурацкая ошибка…



0



Dante5

0 / 0 / 0

Регистрация: 13.12.2010

Сообщений: 73

01.08.2011, 01:01

10

Таже проблема Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/virtwww/w_seo-macler_386b48c4/http/admin/config/config.php on line 24

уже все перепробывал гляньте свежим глазом
P.S на денвере работает все нормально

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
 
 
/// Здесь настройки подключения к БД
$bd_host = "localhost";
 
$bd_user     = "obmen"; // - логин
$bd_password = "obmen"; // - пароль
$bd_base     = "obmen"; // - имя базы
 
 
mysql_connect($bd_host, $bd_user, $bd_password) or die(mysql_error());
mysql_select_db($bd_base);
 
 
// параметры
$conf = mysql_query("SELECT * FROM Settings where s='1' limit 1");  
 
$cr=mysql_fetch_assoc($conf);
 
 
$SITENAME  = $cr['sitename'];
$SITENAME  = str_replace('+',"<br>",$SITENAME);
 
$SITED     = $cr['domen'];
$SITEDESC  = $cr['description'];
$SITEKEYW  = $cr['keywords'];
$SEC       = $cr['seconds'];
?>



0



Karpo

5 / 6 / 4

Регистрация: 03.12.2009

Сообщений: 267

01.08.2011, 01:22

11

Dante5, у Вас скорее всего mysql_query возвращает ложь. Проверьте это, выведя результат выполнения функции.

PHP
1
die(var_dump($conf));

после

PHP
1
$conf = mysql_query("SELECT * FROM Settings where s='1' limit 1");

mysql_query может возвратить ложь, к примеру, если выбрано 0 строк.
Попробуйте выполнить Ваш запрос в phpmyadmin и посмотрите на результат.

Добавлено через 6 минут
rom-scorpion, тот же совет Вам. Попробуйте выполнить Ваш запрос в phpmyadmin. Обычно в полях с названием id_city хранят числа. Попробуйте заменить where id_city=’1′ на where id_city= 1, но запрос сперва выполните в phpmyadmin, он укажет где ошибка.



0



Humanoid

Почетный модератор

11309 / 4283 / 439

Регистрация: 12.06.2008

Сообщений: 12,342

01.08.2011, 08:13

12

Цитата
Сообщение от Karpo
Посмотреть сообщение

mysql_query может возвратить ложь, к примеру, если выбрано 0 строк

Если запрос правильный, но просто нет строк, удовлетворяющих условию, то он вернёт ресурс, как положено. Тут что-то другое… возможно, столбца не существует или таблицы. Просто после mysql_query() надо вызвать

PHP
1
echo mysql_error();

Тогда он покажет, что не так.



0



okay_bro

2 / 2 / 0

Регистрация: 21.07.2011

Сообщений: 83

02.08.2011, 02:25

13

теперь и у меня то же самое вылезает

HTML5
1
2
3
4
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' at line 1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:homeoops.ruwwwexample.php on line 222
 
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:homeoops.ruwwwexample.php on line 236

сам скрипт

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?
 
$db = mysql_connect("localhost","alex","a123b");
 
mysql_query("SET NAMES cp1251");
 
mysql_select_db("first",$db);
 
$result = mysql_query("SELECT * FROM table", $db);
echo mysql_error();
$myrow = mysql_fetch_array($result);
 
do
{
echo "<tr class=''>";
echo "<td class='nom'>№".$myrow["id"]."</td>";
echo "<td class='nam'>".$myrow["name"]."</td>";
echo "<td class='o'><a href='#'>Текст</a></td>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "<td></td>";
echo "</tr>";
}
while($myrow = mysql_fetch_array($result));
 
?>

Что это значит?

Добавлено через 27 минут
Создал такую же бд с другими названиями и все заработало, такие дела =)



0



Humanoid

Почетный модератор

11309 / 4283 / 439

Регистрация: 12.06.2008

Сообщений: 12,342

02.08.2011, 08:00

14

TABLE — служебное слово… поэтому и не может понять. Можешь его взять в кавычки, которые на латинской раскладке вместо буквы «ё» ставятся.

SQL
1
SELECT * FROM `table`



1



stetsyuraoleg

0 / 0 / 0

Регистрация: 24.12.2012

Сообщений: 53

22.05.2014, 13:37

15

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

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:AppServwwwshopview.php on line 93

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
 
include ('db.php');
 
$id = $_GET['id'];
$type = $_GET['type'];
 
$query = mysql_query("SELECT * FROM $type WHERE id='$id' ");
$result = mysql_query($query);
$myrow = mysql_fetch_array($result);
 
 
 
 
?>
 
<table border="1">
 
<tr>
<th>Назва</th>
<td width="100"><? echo $myrow['zagol']?></td>
</tr>
 
<tr>
<th>Цена</th>
<td><? echo $myrow['price'] ?></td>
</tr>
 
<tr>
<th>Опис</th>
<td><? echo $myrow['text'] ?></td>
</tr>
 
 
 
</table>



0



Humanoid

Почетный модератор

11309 / 4283 / 439

Регистрация: 12.06.2008

Сообщений: 12,342

22.05.2014, 20:35

16

Цитата
Сообщение от stetsyuraoleg
Посмотреть сообщение

$type = $_GET[‘type’]; $query = mysql_query(«SELECT * FROM $type WHERE id=’$id’ «);

А если зайти на твою страницу как
view.php?type=mysql.user—

В общем, нельзя напрямую данные из _GET, _POST и т.п. использовать как часть запроса. А особенно имя таблицы оттуда брать. В этом случае даже addslashes() не поможет. Но вопрос не в дырках кода.

Цитата
Сообщение от stetsyuraoleg
Посмотреть сообщение

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

Такую ошибку php выдаёт, когда не смог выполнить запрос… в этом случае mysql_query вернул не ресурс для дальнейшей работы, а false. Можно между 9 и 10 строками вставить:

PHP
1
2
3
4
if (!$result) {
  echo mysql_error();
  exit();
}

Ну а возвращаясь к вопросам безопасности… лучше переходить с обычного mysql на PDO_MySQL или на mysqli. Сервер остаётся тот же самый, только на php другие способы общения с ним. А обычные функции mysql_ уже считаются устаревшими и могут быть удалены в будущих версиях.



0



0 / 0 / 0

Регистрация: 24.12.2012

Сообщений: 53

23.05.2014, 11:56

17

теперь выводит данные с таблицы но выводит только определьонный id который прописаный , а мне нужно если я нажму на товар и в него id = 8 , то переходит именно на этот товар .Как сделать

$id = !empty($_GET[‘id’]) ? intval($_GET[‘id’]) : 1 ;

вот здесь 1 , а если я нажму на товар под другим id ? Как сделать ?

Добавлено через 11 часов 43 минуты
Поможешь ?

Добавлено через 3 часа 30 минут
$id = !empty($_GET[‘id’]) ? intval($_GET[‘id’]) : 0 ;

что здесь изменить чтоб выводило товар с базы не под id = 0, а та на которую выберет пользователь , например 8 или 12 .



0



Почетный модератор

11309 / 4283 / 439

Регистрация: 12.06.2008

Сообщений: 12,342

23.05.2014, 14:52

18

Цитата
Сообщение от stetsyuraoleg
Посмотреть сообщение

$id = !empty($_GET[‘id’]) ? intval($_GET[‘id’]) : 0 ;
что здесь изменить чтоб выводило товар с базы не под id = 0, а та на которую выберет пользователь , например 8 или 12 .

По идее так должно работать. Возможно, ссылка неправильная при нажатии на товар… должно быть что-то вроде view.php?id=8



0



0 / 0 / 0

Регистрация: 24.12.2012

Сообщений: 53

23.05.2014, 15:00

19

у меня две страницы , на одной все товары с базы данных выводят , но просто название и цена , когда нажымаешь на конкретный товар , должно перейти на страницу уже этого товара с полным описанием , которое тоже береться с базы . А здесь в коде стоит 0 , когда я нажымаю на товар , выбивает что товар не найден , а когда меняю на 1 в коде выбивает постоянно только товар под первым id . Как сделать так чтоб выбивало тот товар на который нажал ?



0



  1. только что столкнулся с проблемой
    поиск увы, безрезультатный
    жуьла работает нормально, а вот при просмотре товара сразу выдает подобную хрень.

    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /hsphere/local/home/raptorshop/rcroyal.org.ua/includes/database.php on line 293 Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in /hsphere/local/home/raptorshop/rcroyal.org.ua/includes/database.php on line 295 Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in /hsphere/local/home/raptorshop/rcroyal.org.ua/includes/database.php on line 296 и т.д.

    может кто-то уже решил эту проблему?

    p.s. — версия базы данных 5.0.41-community-log
    Веб-сервер: Apache/1.3.37 (Unix) mod_throttle/3.1.2 mod_psoft_traffic/0.2 mod_ssl/2.8.28 OpenSSL/0.9.8b
    Версия PHP: 5.2.4
    на более ранней работает нормально

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

    Последнее редактирование модератором: 21.09.2007

  2. Offline

    wmaster

    Недавно здесь

    Регистрация:
    26.06.2007
    Сообщения:
    16
    Симпатии:
    0
    Пол:
    Мужской

    Ответ: Помогите:supplied argument is not a valid MySQL-Link !!!

    U menea toje samoe.

  3. Offline

    Arkadiy

    Пользователь

    Регистрация:
    21.11.2007
    Сообщения:
    372
    Симпатии:
    10
    Пол:
    Мужской

    Ответ: Помогите:supplied argument is not a valid MySQL-Link !!!

    А зачем тогда 5.2.4? работайте на четверке

  4. ListOn<? echo $myrow['zagol']?></td> </tr>   <tr> <th>Цена</th> <td><? echo $myrow['price'] ?></td> </tr>   <tr> <th>Опис</th> <td><? echo $myrow['text'] ?></td> </tr>       </table>



0



Humanoid

Почетный модератор

11309 / 4283 / 439

Регистрация: 12.06.2008

Сообщений: 12,342

22.05.2014, 20:35

16

Цитата
Сообщение от stetsyuraoleg
Посмотреть сообщение

$type = $_GET[‘type’]; $query = mysql_query(«SELECT * FROM $type WHERE id=’$id’ «);

А если зайти на твою страницу как
view.php?type=mysql.user—

В общем, нельзя напрямую данные из _GET, _POST и т.п. использовать как часть запроса. А особенно имя таблицы оттуда брать. В этом случае даже addslashes() не поможет. Но вопрос не в дырках кода.

Цитата
Сообщение от stetsyuraoleg
Посмотреть сообщение

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

Такую ошибку php выдаёт, когда не смог выполнить запрос… в этом случае mysql_query вернул не ресурс для дальнейшей работы, а false. Можно между 9 и 10 строками вставить:

PHP
1
2
3
4
if (!$result) {
  echo mysql_error();
  exit();
}

Ну а возвращаясь к вопросам безопасности… лучше переходить с обычного mysql на PDO_MySQL или на mysqli. Сервер остаётся тот же самый, только на php другие способы общения с ним. А обычные функции mysql_ уже считаются устаревшими и могут быть удалены в будущих версиях.



0



0 / 0 / 0

Регистрация: 24.12.2012

Сообщений: 53

23.05.2014, 11:56

17

теперь выводит данные с таблицы но выводит только определьонный id который прописаный , а мне нужно если я нажму на товар и в него id = 8 , то переходит именно на этот товар .Как сделать

$id = !empty($_GET[‘id’]) ? intval($_GET[‘id’]) : 1 ;

вот здесь 1 , а если я нажму на товар под другим id ? Как сделать ?

Добавлено через 11 часов 43 минуты
Поможешь ?

Добавлено через 3 часа 30 минут
$id = !empty($_GET[‘id’]) ? intval($_GET[‘id’]) : 0 ;

что здесь изменить чтоб выводило товар с базы не под id = 0, а та на которую выберет пользователь , например 8 или 12 .



0



Почетный модератор

11309 / 4283 / 439

Регистрация: 12.06.2008

Сообщений: 12,342

23.05.2014, 14:52

18

Цитата
Сообщение от stetsyuraoleg
Посмотреть сообщение

$id = !empty($_GET[‘id’]) ? intval($_GET[‘id’]) : 0 ;
что здесь изменить чтоб выводило товар с базы не под id = 0, а та на которую выберет пользователь , например 8 или 12 .

По идее так должно работать. Возможно, ссылка неправильная при нажатии на товар… должно быть что-то вроде view.php?id=8



0



0 / 0 / 0

Регистрация: 24.12.2012

Сообщений: 53

23.05.2014, 15:00

19

у меня две страницы , на одной все товары с базы данных выводят , но просто название и цена , когда нажымаешь на конкретный товар , должно перейти на страницу уже этого товара с полным описанием , которое тоже береться с базы . А здесь в коде стоит 0 , когда я нажымаю на товар , выбивает что товар не найден , а когда меняю на 1 в коде выбивает постоянно только товар под первым id . Как сделать так чтоб выбивало тот товар на который нажал ?



0



  1. только что столкнулся с проблемой
    поиск увы, безрезультатный
    жуьла работает нормально, а вот при просмотре товара сразу выдает подобную хрень.

    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /hsphere/local/home/raptorshop/rcroyal.org.ua/includes/database.php on line 293 Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in /hsphere/local/home/raptorshop/rcroyal.org.ua/includes/database.php on line 295 Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in /hsphere/local/home/raptorshop/rcroyal.org.ua/includes/database.php on line 296 и т.д.

    может кто-то уже решил эту проблему?

    p.s. — версия базы данных 5.0.41-community-log
    Веб-сервер: Apache/1.3.37 (Unix) mod_throttle/3.1.2 mod_psoft_traffic/0.2 mod_ssl/2.8.28 OpenSSL/0.9.8b
    Версия PHP: 5.2.4
    на более ранней работает нормально

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

    Последнее редактирование модератором: 21.09.2007

  2. Offline

    wmaster

    Недавно здесь

    Регистрация:
    26.06.2007
    Сообщения:
    16
    Симпатии:
    0
    Пол:
    Мужской

    Ответ: Помогите:supplied argument is not a valid MySQL-Link !!!

    U menea toje samoe.

  3. Offline

    Arkadiy

    Пользователь

    Регистрация:
    21.11.2007
    Сообщения:
    372
    Симпатии:
    10
    Пол:
    Мужской

    Ответ: Помогите:supplied argument is not a valid MySQL-Link !!!

    А зачем тогда 5.2.4? работайте на четверке

  4. Offline

    ListOn

    Недавно здесь

    Регистрация:
    03.03.2007
    Сообщения:
    115
    Симпатии:
    7
    Пол:
    Мужской

    Запоздалый ответ. Но лучше поздно, чем никогда :)
    Мне помогло отключение кэша. Если и это не помогает, то здесь (http_://forum.virtuemart.ru/index.php?topic=311.0) обсуждение такой же проблемы

  5. Offline

    laked

    Недавно здесь

    Регистрация:
    31.03.2009
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Женский

    Такая же проблема!!! Помогите плиз!!!
    joomla 1.0.12 + virtuemart 1.0.15b
    включаем кэширование в глобальных конфигурациях, и вуаля
    Warning : mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/virtwww/w_partrek_110ffec6/http/includes/database.php on line 293

    Warning : mysql_errno(): supplied argument is not a valid MySQL-Link resource in /home/virtwww/w_partrek_110ffec6/http/includes/database.php on line 295

    Warning : mysql_error(): supplied argument is not a valid MySQL-Link resource in /home/virtwww/w_partrek_110ffec6/http/includes/database.php on line 296

    Warning : mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/virtwww/w_partrek_110ffec6/http/includes/database.php on line 293

    Warning : mysql_errno(): supplied argument is not a valid MySQL-Link resource in /home/virtwww/w_partrek_110ffec6/http/includes/database.php on line 295

    Warning : mysql_error(): supplied argument is not a valid MySQL-Link resource in /home/virtwww/w_partrek_110ffec6/http/includes/database.php on line 296

    Warning : mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/virtwww/w_partrek_110ffec6/http/includes/database.php on line 293

    Warning : mysql_errno(): supplied argument is not a valid MySQL-Link resource in /home/virtwww/w_partrek_110ffec6/http/includes/database.php on line 295

    Warning : mysql_error(): supplied argument is not a valid MySQL-Link resource in /home/virtwww/w_partrek_110ffec6/http/includes/database.php on line 296

    Warning : mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/virtwww/w_partrek_110ffec6/http/includes/database.php on line 293

    Warning : mysql_errno(): supplied argument is not a valid MySQL-Link resource in /home/virtwww/w_partrek_110ffec6/http/includes/database.php on line 295

    Warning : mysql_error(): supplied argument is not a valid MySQL-Link resource in /home/virtwww/w_partrek_110ffec6/http/includes/database.php on line 296

    Выключаем кэширование, и все тихо и спокойно!

    Но без кэша мы с таким магазином кашу не сварим, ни тебе экономии трафика, ни тебе поисковой оптимизации :'( !!!!

    А главное с такой проблемой сталкивается полно людей, и ни одного ответа…

    связалась с хостингом, мне там ответили «Данная проблема происходит потому, что структура SQL базы не соответствуеет тому, что ожидает ваш форум/портал. К сожалению средствами хостинга это никак не лечится. Это не неисправность хостинга. Нужно, чтобы специалист, который разбирается в вашем сайте, посмотрел бы ситуацию и исправил её, например, поправив структуру базы.»

    Ссылка в предыдущем сообщении не работает, т.к. там форум слетел, и потом востановился без старых топиков… и теперь туда вообще не докричаться, он просто мертвый, куча вопросов и ни одного ответа!!!

    Люди добрые помогите кто чем может!!!

  6. Offline

    mclaod

    Недавно здесь

    Регистрация:
    18.04.2009
    Сообщения:
    1
    Симпатии:
    0
    Пол:
    Мужской

    Ошибка происходит из-за невозможности использовать открытый ресурс подключения к базе данных.
    Это м.б. использование переменной не определенной в функии

    1. $conn = mysql_connect(‘localhost’, ‘root’, ») or die(mysql_error());
    2. $sql = «INSERT INTO …»;
    3.     $rs = mysql_query($sql, [B]$conn[/B]) or die( mysql_error() );

    В функции нужно глобальную переменную $conn

    1. $conn = mysql_connect(‘localhost’, ‘root’, ») or die(mysql_error());

Поделиться этой страницей


Форумы Joomla! CMS

Понравилась статья? Поделить с друзьями:
  • Ошибка is not a valid key name
  • Ошибка is not a valid integer value как исправить
  • Ошибка is not a valid guid value
  • Ошибка is not a valid floating point value
  • Ошибка is not a sequence postgresql