1
我已经阅读了一些相关的问题,但在每种情况下,我都无法让他们的代码在我的上下文中工作。使用准备好的MySQLi语句生成关联数组
在进行了一些注入尝试之后,我试图在我的站点中实现准备好的语句,同时尽可能少地更改代码。重要的是,我希望通过输出为关联数组来响应我的SELECT
查询。 $row['name']
。
这里是我现在所拥有的(预先制备无语句)代码的例子:
// Create connection
$db = new mysqli('localhost', 'username', 'password', 'seatingplan');
if($db->connect_errno > 0){
die('Unable to connect to database [' . $db->connect_error . ']');
}
// Get class name
$sql = <<<SQL
SELECT *
FROM `class`
WHERE `userid` = '$userid'
AND `classid` = '$classid'
SQL;
if(!$result = $db->query($sql)){
die('There was an error running the query [' . $db->error . ']');
}
while($row = $result->fetch_assoc()){
$classname = $row['classname'] ;
}
有没有适应这个准备语句的简单方法?基于其他问题,这是据我已经得到了(但它不工作 - 只为每一行返回1,而不是实际的变量):
$stmt = $db->prepare("SELECT *
FROM `class`
WHERE `userid` = ?
AND `classid` = ?");
$stmt->bind_param("ss", $userid, $classid);
$result = $stmt->execute();
$stmt->store_result();
while($data = $stmt->fetch()){
echo $data ;
}
'echo $ data;'没有数组。请参阅'fetch()'http://php.net/manual/en/mysqli-stmt.fetch.php手册,并没有选择想要回显的行。您还需要绑定结果。 'bind_result()'。 –