2017-09-10 40 views
-2

我有這個$ search = mysqli_real_escape_string($ conn,$ _ POST ['search']); 現在,我想知道這是否可以轉換爲int,並且這是避免sql注入的安全選項。如何將mysqli_real_escape_string用於int值?

$ sql =「SELECT * FROM basket WHERE quantity = $ search」;

**這裏數量爲int

+3

使用'(int)$ search'或'intval($ search)'。 – ShiraNai7

+0

如何在這裏實現它,並從SQL注入是安全的?我有這個$搜索=(INT)$搜索,它以某種方式工作,但這將避免SQL注入? –

+0

它會的。另請參閱https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php – ShiraNai7

回答

0

是的,嚴格來說,鑄造一個變量(int)intval()刪除該變量引起SQL注入的風險。

但這不是避免使用查詢參數的好理由。

首先,您可能同時使用字符串和整數變量與您的SQL語句組合。它使你的代碼更復雜,使用不同的方法來使變量安全,這取決於它們的類型。如果您只爲所有變量使用查詢參數,則可以簡化代碼。

請正確地做。

相關問題