Что случилось с моим кодом? Я продолжаю получать эту ошибку: 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
перед вызовом функции.
чтобы найти ошибку, вы можете попробовать поместить mysql_error()
$result = mysql_query("SHOW TABLES LIKE '$gn'",$db) or exit( mysql_error() );
Функция gameTableCheck()
не знает, что такое переменная $db
. Поскольку PHP не имеет динамического охвата, вам нужно либо объявить переменную как global
внутри функции (если она является глобальной переменной), либо передать ее как параметр в вызове функции.
Вы забыли открыть соединение с вашей базой данных ($ db в своем коде) и выбрать базу данных перед выполнением запроса на нее. Ошибка говорит, что переменная $db в вашем коде не является допустимым ресурсом, и поэтому она не определена.
Смотрите: http://php.net/manual/en/function.mysql-query.php и http://www.php.net/manual/en/function.mysql-connect.php
$db
.