我正在处理一个SQL查询,该查询根据用户ID号外键选择结果,如果相关表中有任何匹配的条目,则显示结果。当我尝试在WHERE子句中使用PHP变量时,似乎SQL查询根本无法识别任何值,即使我打印了该变量,也确实有一个值。
我尝试使用"'. $variable .'"
和' . $variable . '
更改查询,但是仍然得到相同的结果。这是我的代码:
$usernum = intval($_SESSION['usernum']);
$query = "SELECT * FROM dinosaurs WHERE UserNum = '$usernum'";
当我手动输入变量时(例如"SELECT * FROM dinosaurs WHERE UserNum = '6'";
,它可以工作,但是当我尝试运行此查询时,会得到以下结果:
SELECT * FROM dinosaurs WHERE UserNum = ''
returned 0 records.
看起来变量只是在SQL语句中显示空白值?我将如何识别变量的值?
编辑:解决方案 我想到了!这是一个愚蠢的错误,我在另一个函数内部而不是全局变量中声明了变量,因此我将声明移至正确的函数,如下所示:
// print_r($json);
$usernum = intval($_SESSION['usernum']);
}
所以这表明我应该更加注意自己的代码:)
答案 0 :(得分:0)
这是我的原始代码:
session_start();
if (isset($_SESSION['username'])) {
$firstname = htmlspecialchars($_SESSION['firstname']);
$usernum = intval($_SESSION['usernum']);
$username = $_SESSION['username'];
} else echo "<script> window.location.assign('uhoh.html'); </script>";
require_once 'connect.php';
require_once 'pretty_json.php';
submitQuery($conn, $json);
$conn->close();
我在原始的if语句中而不是全局地声明了$usernum
变量。因此,当我尝试在SubmitQuery函数中访问它时,它没有设置任何内容。
要解决此问题,我刚刚在SubmitQuery函数的开头声明了$usernum
变量。