我發現有必要在一個我知之甚少的領域工作。我必須確保使用大約20個MySQL SELECT調用的網站數據庫爲網站訪問者提供信息。呼叫都採用的形式:準備語句的語法正確
$leadstory = "-1";
if (isset($_GET['leadstory'])) {
$leadstory = $_GET['leadstory'];
}
$query_News = "SELECT * FROM news WHERE lead_story = $leadstory";
$News = mysql_query($query_News, $HDAdave) or die(mysql_error());
$row_News = mysql_fetch_assoc($News);
$totalRows_News = mysql_num_rows($News);
在以前的文章中,我問,如果這些SELECT語句容易受到SQL注入攻擊。大家都知道答案是肯定的。我做了一些閱讀和理解,我需要使用mysqli和類似以下內容:
$statement = $db_connection->prepare("SELECT * FROM news WHERE lead_story = ?;';");
$statement->bind_param("s", $leadstory);
$statement->execute();
$row_News = $statement->fetchAll();
我有幾個問題。
我需要一個「或死亡」型線,如果連接失敗?
我該如何分配$ totalRows_News?
我還需要「乾淨」
$leadstory
變量與mysql_real_escape_string
?
切換到PDO,它是迄今爲止的更好的PHP數據庫庫 – Phil 2012-02-24 04:53:49
可能重複[如果你總是最後的MySQL查詢與「完蛋了麼?」(http://stackoverflow.com/q/2130105/),[用PDO計數](http://stackoverflow.com/q/883365/),[在PHP中預先準備好的語句中引用時需要引用的時間](http:// stackoverflow。 com/q/2212097 /) – outis 2012-02-24 08:43:16