我有这个代码`
require("db_connect.php");
function xx()
{
$conn = db_connect(); //here it works
(...)
date_default_timezone_set('Europe/Paris');
if(time() <= $x[0]){
(...)
}else
{
(...)
for ($x = 0; $x < count($GLOBALS['car_park']); $x++)
{
$conn = db_connect(); //here i get :Access denied for user 'ODBC'@'localhost' (using password: NO)
$res = $conn->query("SELECT * FROM x WHERE owner='x' AND x='0' ORDER BY id DESC ");
if (!$res) {
//die(msg(0,"Could not execute query"));
}
}
}
}
`
我已经删除了所有回声和其他一些循环等,但除此之外我认为代码是相同的。我似乎一直用全局变量范围来解决这个问题。我认为变量是全局的并且总是设置的,代码停止工作,经过很多麻烦后我发现我认为是全局的变量突然消失了..非常烦人..
db_connect 函数:
function db_connect() {
$result = new mysqli('localhost', 'user', 'pass', 'db');
if (!$result) {
die(msg(0,"Could not connect to database server"));
} else {
return $result;
}
}
好的。我在 db_connect 之前尝试了这段代码:
if (isset ($conn)){
echo "set";
}
else {
echo "unset";
}
它显示出来了。为什么我会得到:用户 'ODBC'@'localhost' 的访问被拒绝(使用密码:否)然后?