Php &引用;警告:mysql_query():提供的参数不是有效的mysql链接";-为什么?
我的代码怎么了?我一直收到以下错误:Php &引用;警告:mysql_query():提供的参数不是有效的mysql链接";-为什么?,php,mysql,Php,Mysql,我的代码怎么了?我一直收到以下错误:警告:mysql\u query():提供的参数不是第4行functions.php中的有效mysql链接资源 读取数据库时出错 function gameTableCheck($gn) { $result = mysql_query("SHOW TABLES LIKE '$gn'",$db) or die ('error reading database'); //This is line 4 if (mysql_num_rows ($
警告:mysql\u query():提供的参数不是第4行functions.php中的有效mysql链接资源
读取数据库时出错
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
,您需要添加一个全局$db函数顶部的code>语句。我认为$db没有正确初始化。您要做的是使用mysql\u选择\u 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\u查询(“显示像“$gn'”、$db这样的表)
范围中没有$db
如果您仅使用一个数据库连接,并且已经连接,则可以删除此参数。您忘记打开到数据库的连接(代码中为db)并在对其执行查询之前选择一个数据库。错误表明代码中的$db变量不是有效的资源,因此未定义它
请参阅:和要查找错误,可以尝试放置mysql\u error()
gameTableCheck()
函数不知道$db
变量是什么。由于PHP没有动态作用域,您必须在函数内将变量声明为global
(如果它是全局变量),或者在函数调用中将其作为参数传递。或者(更好的做法是)将$db作为参数传递给函数这当然是假设全局作用域中存在$db
。
$result = mysql_query("SHOW TABLES LIKE '$gn'",$db) or exit( mysql_error() );