代码在这里:
$mysqli = new mysqli($servername, $username, $password, $database);
$userId1 = $_SESSION['user']['userId'];
$searchQuery = "SELECT ClassName FROM classrooms WHERE userid = '{$userId1}'";
echo "abc";
if ($mysqli->query($searchQuery) === TRUE) {
echo "epic";
while($row = $searchQuery->fetch_object()) {
echo $row['ClassName'];
}
}
我正在尝试回显教室表中userId等于会话userId的所有实例。救命。
这是我们用来跟踪我正在使用mysqli的用户教室的表。
ClassName userid
yoink 25
lol 25
haha 6
yoinks 25
yeet 25
yeet1 25
结果,我的帖子主要是代码。因此,让我提供一些背景细节。我正在尝试制作一个表格,根据用户ID显示教室名称。因此,用户25将具有教室yoink,大声笑,yoinks,yeet和yeet1。但是if语句(我们的查询)实际上没有任何作用。
非常感谢
$searchQuery
是字符串!!!而且不是从$mysqli->query()
返回但没有捕获的结果句柄。
因此将代码更改为
$mysqli = new mysqli($servername, $username, $password, $database);
$userId1 = $_SESSION['user']['userId'];
$searchQuery = "SELECT ClassName FROM classrooms WHERE userid = '{$userId1}'";
echo "abc";
if ($result = $mysqli->query($searchQuery) === TRUE) {
echo "epic";
while($row = $result->fetch_object()) {
//echo $row['ClassName'];
// you fetch an OBJECT so address it as an object
echo $row->ClassName;
}
}
您的脚本对SQL Injection Attack打开。甚至if you are escaping inputs, its not safe!您应该考虑在prepared parameterized statements或
MYSQLI_
API中使用PDO
,而不要使用串联值