簡體   English   中英

PHP准備的語句中是否允許使用通配符?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM