PDO准备声明与<>运营商在where子句中

时间:2015-04-10 12:13:02

标签: pdo parameters comparison operator-keyword clause

我需要知道如何处理<>运算符与预准备语句中where子句中的参数一起使用。任何人都可以告诉我如何做类似于' WHERE字段<>:参数'。谢谢。 编辑:我不记得提到MySQL是我的数据库服务器。

1 个答案:

答案 0 :(得分:0)

直到我发现这一点,在Web上的所有示例中,我只在预备语句的WHERE子句中看到了'='运算符。但我最近发现任何,我的意思是任何,运算符逻辑运算符与预处理语句占位符一起使用,而不仅仅是'='。例如,您可以:

<?php 
     $stmt = $dbHandle->prepare( 'SELECT * FROM table WHERE id <> :ID' );
     $stmt->execute( array( ':ID'=> $id ) );
?>

或者甚至是这个

<?php 
     $stmt = $dbHandle->prepare( 'SELECT * FROM table WHERE id <= :ID' );
     $stmt->execute( array( ':ID'=> $id ) );
?>

和,正如你猜测的那样,

<?php 
     $stmt = $dbHandle->prepare( 'SELECT * FROM table WHERE id >= :ID' );
     $stmt->execute( array( ':ID'=> $id ) );
?>

PDO应该能够做到这一点但不确定是合乎逻辑的。所以,通过实验发现这一点对我来说是一种解脱。我一直想在我的代码中这样做。我希望能节省一些时间。