Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Ошибка PHP - parameter 1 to be resource
Форумы портала PHP.SU » » Вопросы новичков » Ошибка PHP - parameter 1 to be resource

Страниц (1): [1]
 

1. NiceATtacK - 02 Февраля, 2018 - 14:57:35 - перейти к сообщению
Здравствуйте, есть вот такой код:
PHP:
скопировать код в буфер обмена
  1. if(isset($_POST['insert-admin'])){
  2.     $nick = $_POST['name'];
  3.     $level = $_POST['admin'];
  4.     $query = mysql_query('SELECT * From '.$account['table']." WHERE ".$account['name']."='$nick'");
  5.     if(!empty($nick) && !empty($level))
  6.     {
  7.         if(mysql_num_rows($query)!=0)
  8.         {
  9.             $user2 = mysql_fetch_array($query);
  10.             if($user2["".$account['admin'].""] == 0)
  11.             {
  12.                 mysql_query("UPDATE ".$account['table']." SET ".$account['admin']." = '$level' WHERE ".$account['name']." ='$nick'");
  13.                 $msg = "".$nick." был назначен администратором ".$nameadmin."!<br>";
  14.             }
  15.             else $msg = "".$nick." уже является администратором!<br>";
  16.         }
  17.         else $msg = "Пользователь ".$nick." не найден!<br>";
  18.     }
  19.     else $msg = "Заполните все поля!<br>";
  20. }

Код выполнения запроса:
CODE (html):
скопировать код в буфер обмена
  1. <form action="" method="POST" class="search-acc">
  2.     <?=$msg?>
  3.     <br><input type="text" class="main-input-3" name="name" placeholder="ник"><br>
  4.     <br><input type="text" class="main-input-3" name="admin" placeholder="Уровень ">
  5.     <button type="submit" name="insert-admin" class="button btn-send button-light btn-shadow">Добавить</button>
  6. </form>

При обработке данных выдаёт ошибку:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/c/cv99087/gta/public_html/ admins/adminModules.php on line 21

Ругается на строку: if(mysql_num_rows($query)!=0)

PHP - 5.6

В чём может быть ошибка
2. andrewkard - 02 Февраля, 2018 - 16:30:05 - перейти к сообщению
NiceATtacK пишет:
$query = mysql_query('SELECT * From '.$account['table']." WHERE ".$account['name']."='$nick'");


Цитата:

Для запросов SELECT, SHOW, DESCRIBE, EXPLAIN и других запросов, возвращающих результат из нескольких рядов, mysql_query() возвращает дескриптор результата запроса (resource), или FALSE в случае ошибки


выкиньте mysql, используйте PDO или mysqli, + подготовленные выражения

без проверки, что Вам пришло в посте, ставить прямо в запрос опасно.

А на счет ошибки:
наименование таблицы оберните в `
наименование поля в '
3. NiceATtacK - 02 Февраля, 2018 - 17:45:34 - перейти к сообщению
andrewkard пишет:
NiceATtacK пишет:
$query = mysql_query('SELECT * From '.$account['table']." WHERE ".$account['name']."='$nick'");


Цитата:

Для запросов SELECT, SHOW, DESCRIBE, EXPLAIN и других запросов, возвращающих результат из нескольких рядов, mysql_query() возвращает дескриптор результата запроса (resource), или FALSE в случае ошибки


выкиньте mysql, используйте PDO или mysqli, + подготовленные выражения

без проверки, что Вам пришло в посте, ставить прямо в запрос опасно.

А на счет ошибки:
наименование таблицы оберните в `
наименование поля в '

Вы имели в виду вот так
$query = mysql_query("SELECT * FROM `".$account['table']."` WHERE `".$account['name']."`='$nick'"); ?

не помогло

А почему не безопасно?
4. andrewkard - 02 Февраля, 2018 - 18:15:28 - перейти к сообщению
не так.
Попробуйте вывести ошибку и разобраться
http://php.net/manual/ru/functio....mysql-error.php
NiceATtacK пишет:
А почему не безопасно?

SQL инъекция

 

Powered by ExBB FM 1.0 RC1