«Предупреждение: mysql_query (): предоставленный аргумент не является допустимым MySQL-Link» – Почему?

Что случилось с моим кодом? Я продолжаю получать эту ошибку: Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in functions.php on line 4 error reading database

 function gameTableCheck($gn) { $result = mysql_query("SHOW TABLES LIKE '$gn'",$db) or die ('error reading database'); //This is line 4 if (mysql_num_rows ($result)>0) { return true; } else { return false; } } if( gameTableCheck($page) === false ) { echo "MAO"; die(); } 

Solutions Collecting From Web of "«Предупреждение: mysql_query (): предоставленный аргумент не является допустимым MySQL-Link» – Почему?"

$db не является локальной переменной внутри функции gameTableCheck , вам нужно добавить global $db; в верхней части функции.

Проблема здесь: mysql_query("SHOW TABLES LIKE '$gn'",$db)

Объем не равен $db .

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

Ну, я бы сказал, что $ db не инициализируется правильно. Что вы хотите сделать, так это использовать mysql_select_db :

 <?php $host = "localhost"; //database location $user = "user"; //database username $pass = "pass"; //database password $db_name = "thename"; //database name //database connection $link = mysql_connect($host, $user, $pass); mysql_select_db($db_name); //sets encoding to utf8 mysql_query("SET NAMES utf8"); ?> 

(фрагмент через )

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

  • переменная $ db задана правильно

  • переменная $ db входит в объем вашей функции. Подумайте о том, чтобы сделать его глобальным, если необходимо, или передать его функции в качестве аргумента

Я предполагаю, что $db не является допустимым подключением к базе данных. Вы заранее подключились к базе данных? Является ли $db доступным в области этой функции?

Вы можете сделать его глобальным, используя global $db перед вызовом функции.

Вы забыли открыть соединение с вашей базой данных ($ db в своем коде) и выбрать базу данных перед выполнением запроса на нее. Ошибка говорит, что переменная $ db в вашем коде не является допустимым ресурсом, и поэтому она не определена.

См. http://php.net/manual/en/function.mysql-query.php и http://www.php.net/manual/en/function.mysql-connect.php.

чтобы найти ошибку, вы можете попробовать поставить mysql_error ()

 $result = mysql_query("SHOW TABLES LIKE '$gn'",$db) or exit( mysql_error() ); 

Функция gameTableCheck() не знает, что такое переменная $db . Поскольку PHP не имеет динамического охвата, вам нужно либо объявить переменную как global внутри функции (если она является глобальной переменной), либо передать ее как параметр в вызове функции.