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()'。 –