我有一系列需要用PDO调用的MySql查询。他们中的许多人正在使用MySql变量。当然,解决方案是使用PDO准备好的陈述,但情况并非总是如此。 Insert
和Update
语句运行没有问题,但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.29
和MYSQL 5.5.47
答案 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
)
)