簡體   English   中英

在SQL中使用命名參數作為變量

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

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