gpt4 book ai didi

php - MySQL 变量和 PDO

转载 作者:行者123 更新时间:2023-11-28 23:55:50 24 4
gpt4 key购买 nike

我在使用 MySQL 变量的 PDO 查询时遇到问题。我已经在 MySQL Workbench 中执行了这个查询,也直接从正在处理和存储的内容中通过 MySQL 通用日志执行了这个查询并获得了结果。当它通过 PDO 运行时,我的 rowCount() 返回 0。

我检查了错误日志并在 PDOException 上尝试/捕获,但什么也没有。我还研究了一些关于将 MySQL vars 与 PDO 结合使用的问题,但从我发现的情况来看,应该没有任何问题。

这里是查询:

$mobile_query = $online_link->prepare('SELECT
T.full_date,
T.login_count
FROM (
SELECT
M.Process_Date as full_date,
M.Nbr_Success_Sigon,
@dup := CASE WHEN @prev_login <> M.Nbr_Success_Sigon THEN 1 ELSE (@dup+1) END AS reset,
@num_logins := (M.Nbr_Success_Sigon - @prev_login) as login_count,
@prev_login := M.Nbr_Success_Sigon
FROM mobile_tran M
WHERE
M.CIS_No = :cis AND
M.Process_Date >= :start_date + INTERVAL -' . $date_interval . ' DAY AND
M.Process_Date < :start_date
)as T
WHERE T.reset = 1 AND T.login_count > 0');

try {
$mobile_query->execute(array(':cis'=>$cis, ':start_date'=>$start_date));
} catch(PDOException $e) {
$logger->error($e->getMessage());
}

数据集是每天登录一次的滚动计数。我只想返回计数发生变化的天数。

例如:

07-01 - 0
07-02 - 0
07-03 - 1 (<- I want to return this record)
07-04 - 1
07-05 - 3 (<- I want to return this record)

在使用 MySQL 变量时,我是否遗漏了 PDO 的某种奇怪限制?

最佳答案

我不确定为什么这是个问题,但我能够通过在之前的查询中将变量设置为默认值来获取数据。

  $var_query = $online_link->query('SET @dump = 0, @num_logins = 0, @prev_login = 0');

只要它在主查询之前执行,一切都会按预期进行。

关于php - MySQL 变量和 PDO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31711163/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com