我想在php中回显具有相同用户名的所有className

问题描述 投票:-1回答:1

代码在这里:

$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语句(我们的查询)实际上没有任何作用。

非常感谢

php sql echo
1个回答
0
投票

$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 statementsMYSQLI_ API中使用PDO,而不要使用串联值

© www.soinside.com 2019 - 2024. All rights reserved.