Re: 請多用 PDO...

看板PHP作者 (System hacked)時間12年前 (2013/05/26 09:10), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/6 (看更多)
※ 引述《DarkKiller (System hacked)》之銘言: : 現在一般常常鼓勵用 PDO 連 MySQL,主要的原因是 mysql_* 已經被 PHP 5.5+ 宣告 : 為 deprecated: : http://jp.php.net/manual/en/function.mysql-connect.php : 另外還有 escape 的原因而被建議用 PDO。 以往 mysql_* 在避免 SQL injection,需要處理 escape 的事情時會這樣寫: $username = $_GET['username']; $sql = sprintf( 'SELECT * FROM `user` WHERE `username` = "%s";', mysql_escape_string($username) ); 這在 PHP 5.3+ 後被標為 deprecated,原因是 mysql_escape_string() 不知道 MySQL 連線的 charset,對於 escape 會有影響。 正確的方法是: $username = $_GET['username']; $sql = sprintf( 'SELECT * FROM `user` WHERE `username` = "%s";', mysql_real_escape_string($username, $dbh) ); 其中 $dbh 是 mysql_connect() 傳回的 resource。 這其實非常的... 麻煩。 PDO 因為是物件,所以就很自然而然被被綁定在物件上。 $username = $_GET['username']; $p = $db->prepare('SELECT * FROM `user` WHERE `username` = ?;'); $p->execute(array($username)); 另外一個是效能的問題... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.121.80.241
文章代碼(AID): #1HeM3t2z (PHP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文 (最舊先):
1
1
完整討論串 (本文為第 3 之 6 篇):
6
15
1
1
1
2
文章代碼(AID): #1HeM3t2z (PHP)