PDO:使用PHP常量准备语句
我有一个SQL查询,它有许多不同的参数。通常,在PDO语句中,is只需执行以下操作:PDO:使用PHP常量准备语句,php,mysql,pdo,Php,Mysql,Pdo,我有一个SQL查询,它有许多不同的参数。通常,在PDO语句中,is只需执行以下操作: $sql = '... :parameter ...'; $query = $db->prepare($sql); $query->bindParam(':parameter', $var, $type); 然而,我碰巧有大量的参数,所有这些都是PHP常量(因此没有用户输入) 这里有两种方法: 为我们希望绑定的每个参数声明一个变量,并传递它(如上所述) 拆分SQL查询,以便得到如下结果: $sql
$sql = '... :parameter ...';
$query = $db->prepare($sql);
$query->bindParam(':parameter', $var, $type);
然而,我碰巧有大量的参数,所有这些都是PHP常量(因此没有用户输入)
这里有两种方法:
$sql='…'。常数“…”代码>
1的缺点是有很多额外的代码,这些代码几乎没有什么实际用途,尽管很清楚发生了什么
2的缺点是,SQL代码上的语法高亮显示丢失了,看起来很奇怪,尽管它更短、更简洁
有没有办法将这些常量按原样传递给bindParam()
因此:
不使用bindParam()
,而是使用bindValue()
:请注意,bindParam()参数是通过引用传递给PDO的,而bindValue()参数是通过值传递的。我将创建一个映射方法,可能还有一个生成查询方法,在execute()中将参数作为数组传递。请参阅
$query->bindParam(':parameter', CONST, $type);