正在重做該網站。升級到mysqli,現在我正在用準備好的語句整理代碼和安全。我明白,聲明應該在foreach循環之外進行準備,但我對條件聲明感到好奇。mysqli準備好內部或外部語句,如果然後阻止
[code that decides $table]
foreach ($_POST[$lastvar] as $key => $value) {
[code not relevant to Q]
$sql3 = "SELECT * from $table WHERE titlesid=? and peopleid=?";
$stmt3 = $mysqli->prepare($sql3);
$stmt3->bind_param("ii", $titlesid,$peopleid);
$stmt3->execute();
if ($stmt3->num_rows == 0) {
if ($table == "dhereviewers") {
$sql = "INSERT into $table (titlesid,peopleid) VALUES (?,?)";
} else {
$sql = "INSERT into $table (titlesid,peopleid,billing) VALUES (?,?,?)";
}
$billing++;
[prepare/execute one of the last two statements]
}
}
}
因此,根據'如果'我要去執行最後兩個插入中的一個或另一個。因爲他們是有條件的,我只有在他們被「選擇」時才做好準備嗎?
希望我很清楚。 :-)
還在學習準備好的陳述的繩索。
感謝num_rows上的領導。圍繞着新方法繼續包裹着我的腦袋。 – Ian
@Ian,num_rows的行爲與mysql_num_rows()完全相同 - 僅適用於緩衝查詢。 –
是的,抱歉...我現在面臨的更大的問題是「命令不同步」。試圖找出如何解決這個問題。 – Ian