将MySQL变量与PDO Select语句一起使用

时间:2016-02-01 15:44:28

标签: php mysql pdo

我有一系列需要用PDO调用的MySql查询。他们中的许多人正在使用MySql变量。当然,解决方案是使用PDO准备好的陈述,但情况并非总是如此。 InsertUpdate语句运行没有问题,但Select正在抛出错误。 (我现在无法为你粘贴它。请说明是否有必要)

在MySQL Workbench中执行时,选择查询正常运行。

SET 
    @CY = YEAR(DATE_ADD(CURRENT_DATE,INTERVAL -17 DAY));

SELECT
   *
FROM
    TableX
WHERE
    TableX.Year IN (@CY, @CY-1)

有什么想法吗?

其他信息:PHP 5.3.29MYSQL 5.5.47

1 个答案:

答案 0 :(得分:1)

您可以通过两个步骤执行类似的查询:

$stmt = $pdo->query('SET @CY = YEAR(DATE_ADD(CURRENT_DATE,INTERVAL -17 DAY));');
$stmt = $pdo->query('SELECT @CY, @CY-1');
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($data);

输出:

Array
(
    [0] => Array
        (
            [@CY] => 2016
            [@CY-1] => 2015
        )

)