[英]using named parameters for variables in sql
我的代碼無法正常工作,我做錯了什么,是否可以使用命名參數作為鍵。 我正在嘗試使其在不進行硬編碼的情況下,可以在我的sql“ username = aaron” sql中為變量部分賦值的地方,如果不能,請問如何做到這一點?
$select = $conn->prepare("SELECT * FROM users WHERE :key = :username ") ;
$select->execute([":key"=> "username", ":username"=> 'aaron' ]) ;
它不起作用,因為它將用“用戶名”而不是用戶名替換:key,因此您的查詢最終將是:
SELECT * FROM users WHERE 'username' = 'aaron'
SQL綁定最初是用來替換變量(發生變化的事物)而不是常量(在此示例中為列名)的。
如果仍然想做類似的事情,則需要自己編寫一些代碼,而不要使用-> execute方法。
解
$key = "username" ;
$select = $conn->prepare("SELECT * FROM users WHERE $key = :username ") ;
$select->execute([ ":username"=> 'aaron' ]) ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.