我的PHP顶部有一个变量集:
$abc = "paid";
现在我需要将它作为列名传递给下面的查询。我尝试了以下但是没有用。
$sql = "SELECT customerID FROM payments WHERE :myVar = :credit";
$stmt = $connect->prepare($sql);
$stmt->execute(array(':credit'=>"0", ':myVar'=>$abc));
如何将$abc
作为列名传递给select查询?
答案 0 :(得分:0)
Curly brakets(来自PHP docs):
复杂(卷曲)语法
这不称为复杂,因为语法很复杂,但因为它允许使用复杂的表达式。
可以通过此语法包含任何具有字符串表示形式的标量变量,数组元素或对象属性。只需以与字符串外部相同的方式编写表达式,然后将其包装在{和}中。
您的代码应该类似于:"SELECT customerID FROM payments WHERE {$abc} = :credit";
答案 1 :(得分:-2)
你不能在准备好的查询中绑定colname / table name,你可以这样做:
$sql = "SELECT customerID FROM payments WHERE $abc=:credit";
$stmt = $connect->prepare($sql);
$stmt->execute(array(':credit'=>"0"));