私はこのコードを持っています `
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;
}
}
Ok。db_connect の前にこのコードを試しました:
if (isset ($conn)){
echo "set";
}
else {
echo "unset";
}
そしてそれはセットで表示されます。なぜ私は得るのですか?