好的,所以我现在遇到了最奇怪的问题。我的代码很好!它完全按照我的意愿和期望运行,这对我来说是一个巨大的冲击,因为每次我去做 MySQL 时,我都会遇到无穷无尽的问题,而我永远找不到解决方案。
但是今天,一切都很完美。所以有什么问题?问题是当我尝试将我的代码包装在一个函数中时,它只是......停止工作!在每一步之后我都会进行错误检查,并且在它自己的文件和行中工作正常。但是我需要把它放在一个函数中,这样我就可以添加参数(因此是“extraQuery”变量),然后“返回”它,这样我就可以从一个单独的文件中访问它。
这是我的基本代码:
$link = mysql_connect($db_host, $db_user, $db_pass) or die ("Unable to connect: " . mysql_error());
mysql_select_db($db_name, $link) or die("Couldn't connect to database: " . mysql_error());
$extraQuery = "";
$result = mysql_query("SELECT * FROM things " . $extraQuery . " ORDER BY RAND() LIMIT 1", $link);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
mysql_close($link);
echo($row['content']);
正如我所说,它完全可以正常工作。但是当我这样做时......
function getResult(){
$link = mysql_connect($db_host, $db_user, $db_pass) or die ("Unable to connect: " . mysql_error());
mysql_select_db($db_name, $link) or die("Couldn't connect to database: " . mysql_error());
$extraQuery = "";
$result = mysql_query("SELECT * FROM things " . $extraQuery . " ORDER BY RAND() LIMIT 1", $link);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
mysql_close($link);
echo($row['content']);
}
getResult();
..它在第二行停止工作,告诉我“未选择数据库”。但是正如您所看到的,我明确选择了一个确实存在的数据库,并且当它不在函数中时可以正常工作。只是为了强调这一点,这不是我的用户权限,也不是数据库的名称;因为它在函数之外可以完美运行。
任何可能的帮助将不胜感激。