[英]Is the wildcard character allowed on PHP prepared statements?
我正在使用AJAX將用戶的輸入發送到PHP腳本。 PHP腳本顯示來自MySQL表的記錄。
如果用戶輸入通配符( %
),則會列出數據庫中的所有記錄。
從編碼角度來看可以嗎? 應該允許%
char嗎? 還是我的代碼可能是錯誤的?
我真的不在乎用戶體驗,實際上這可能是一個不錯的功能,但是我想知道這對於准備好的語句是否正常 。
...
$stmt = $dbh->prepare("SELECT * FROM tblStudent where lastNameStudent LIKE ?");
$stmt->bindParam(1, $lastname, PDO::PARAM_STR);
$stmt->execute();
...
當我設置$lastname='%'
我得到了tblStudent
表中的所有記錄。
從代碼角度來看這還好嗎?
是。
應該允許%char嗎?
沒錯。 至少從安全角度來看。
說到應用程序邏輯-這取決於。 如果希望按字面意義進行搜索,則可以轉義此字符;如果要將其用作通配符,則不能轉義。
此行為與准備好的語句無關。
准備好的語句只是將變量放入查詢的一種方法。 此變量的內容與它無關。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.