“警告: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
“警告:mysql_query():提供的参数不是有效的MySQL-Link” - 为什么?
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;
声明。
那么我会说$ 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");
?>
(代码段via)
如果您确实需要对每个查询出于某种原因指定的数据库变量,尝试寻找是否:
的$ DB变量设置正确
的$ DB变量是你的函数的范围之内。 Consider making it global如果需要,或将它传递给函数作为参数
我认为$db
是不是有效的数据库连接。 您是否事先连接到数据库?该函数的范围中是否有$db
?
在调用函数之前,您可以使用global $db
使其具有全局范围。
的问题是在这里:mysql_query("SHOW TABLES LIKE '$gn'",$db)
有范围没有$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
(如果它是全局变量),或者将其作为参数传递给函数调用。
或(更好的IMO)将$ db作为参数传递给函数 – fvu 2010-01-05 11:37:30
这当然假设在全局范围内有一个“$ db”。 – 2010-01-05 11:38:59
我忘了,嘿,傻我! – Strawberry 2010-01-05 12:03:58