2012-07-07 90 views
0

我將如何去將撇號插入到MySQL中,而不會在PHP中引發任何錯誤。什麼是正確的方式來從MySQL迴應他們。MySQL撇號的錯誤

感謝

+0

請顯示您正在努力工作的代碼。 – 2012-07-07 21:18:49

+1

假設您正在使用'mysql_'函數,請參見[mysql_real_escape_string()](http://php.net/mysql_real_escape_string)。你在用什麼(mysql_ *,Mysqli或PDO)? – drew010 2012-07-07 21:19:16

+1

或者您可以使用PDO,並整齊迴避問題。 – andrewsi 2012-07-07 21:19:42

回答

2

您需要考慮PHP和MySQL,如果您使用的是框架,那也一樣。

至於PHP而言,你需要使用引號的另一風格與那些包含在你的字符串,否則「逃」出來的,就像這樣:

$string = 'this is not a problem; it\'s escaped.'; 
$string = "I don't need to escape"; 

至於MySQL,你應該使用轉義函數,如mysql_real_escape_string或類似。

在查詢中使用用戶提供的數據有一種更高級的技術,叫做「準備語句」,這是用用戶提供的參數實現動態查詢的最健壯和最安全的方法。請參閱this section of the docs開始。

1

你應該用準備好的查詢,PDO可能是最好的。那麼你不需要擔心逃脫你的投入。

-1

在php中,您可以用反斜槓來避開使徒行爲。

+1

使用正在使用的MySQL擴展提供的API函數,絕不會嘗試使用addslashes或類似的東西手動轉義。或者使用預先準備的語句或參數化查詢,以便爲您完成轉義。 – drew010 2012-07-07 21:24:13