【问题标题】:Difference in outcome query between PhpMyAdmin en PDOPhpMyAdmin en PDO 之间的结果查询差异
【发布时间】:2012-10-21 13:03:10
【问题描述】:

我在 PHP/PDO 中准备了以下查询。

SELECT
    count(distinct(p.accid)) as aantal
FROM 
    winter_accommodaties_prijzen p
INNER JOIN winter_accommodaties a ON (a.id = p.accid)
INNER JOIN winter_dorpen d ON (d.id = a.did)
INNER JOIN winter_gebied g ON (g.id = d.gid)
INNER JOIN winter_accommodaties_types t ON (a.tid = t.id)
WHERE
    g.lid IN(:lid0) AND 
    g.min_hoogte >= :hoogte AND
    (g.pistes_groen+g.pistes_blauw+g.pistes_rood+g.pistes_zwart) >= :km AND 
    d.hoogte_dorp >= :hoogte_dorp AND 
    d.afstand_utrecht <= :afstand_utrecht AND 
    prijs < : max_prijs AND 
    p.persons >= :aantal_personen

然后我将以下数组绑定到此查询:

 Array
 (
  [:lid0] => 1
  [:hoogte] => 500
  [:km] => 50
  [:hoogte_dorp] => 500
  [:afstand_utrecht] => 2500
  [:max_prijs] => 1200
  [:aantal_personen] => 4
 )

通过 PHP 运行它,我得到 'aantal' 的结果:97(结果)。 如果我运行上面的查询,用它们对应的值替换所有变量,我会通过 PhpMyAdmin 得到 124 个结果。使用 mysql_query 在 PHP 中以老式方式运行相同的查询,我也得到 124 个结果。

我在导致差异的 PDO 查询中遗漏了什么?

更新 AL_ 的请求 => 创建 PDO 连接:

$conn = new PDO(DB_DSN, DB_USER, DB_PASSWORD);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = "See query above"

$query_pag_no = $conn->prepare($query); // the above query
$query_pag_no->execute($bind_array);    // the above array

$aantal_resultaten = $query_pag_no->fetchColumn();

$aantal_resultaten 中的结果是 97(行)。

【问题讨论】:

  • 最好发布您正在使用的 pdo 对象,从创建到执行查询。
  • print_r() actual 数组的内容并在上面发布。
  • Michael & AL_,我已对上述内容进行了更新。
  • 真的很奇怪。我会在 mysql 级别调试查询。您是否在开发环境中并具有对 mysql 的 root 访问权限?然后在my.cnf 中设置general_log = 1。 Mysql 会将所有收到的查询记录到日志文件中。比较使用pdomysql_* 时的查询。

标签: php mysql pdo


【解决方案1】:

:min_personen 看起来没有在参数数组中定义。看看吧。

【讨论】:

  • 看起来我在复制查询时打错了,它们是一样的。
【解决方案2】:

问题在于数据库的设置方式以及 Pdo->prepare 如何发送信息。它总是在变量上加上单引号,这是我们不期望/在 phpmyadmin 选项中使用的。从而造成分歧。 感谢所有好的建议。

【讨论】:

    猜你喜欢
    • 2016-11-21
    • 2021-05-24
    • 2013-07-24
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多