Что случилось с моим кодом? Я продолжаю получать эту ошибку: 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(); }
$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
внутри функции (если она является глобальной переменной), либо передать ее как параметр в вызове функции.