【问题标题】:sql & pdo syntax error? [closed]sql & pdo 语法错误? [关闭]
【发布时间】:2016-11-24 17:07:42
【问题描述】:

我有一个 pdo 语句,用于选择所有行以进行行计数....我不断收到此错误“调用布尔值的成员函数 execute()”...我已经三次检查了我的语句和数据库表,但找不到有什么不妥

$stmt = $connection->prepare("SELECT * FROM users_profile WHERE email=:email");
            var_dump($connection->error);
            $stmt->execute(":email",$email);
            $count = $stmt->rowCount();

Var 转储错误说这里有一个语法错误“:电子邮件”..但我似乎看不到它......它通过我的 PDO 代码执行此操作

【问题讨论】:

  • 没有PDOStatement::error(那是mysqli_,不是PDO),它是PDOStatement::errorInfo()。如果你使用mysqli_ 作为连接,你会得到一个占位符:email 的语法错误。所以这就引出了一个问题——你在连接什么?
  • @Qirel 这是我之前写过/问过的类似内容,但他们只是提出并留下了问题,所以我对自己说:“Pfffft...,很好。” 所以我删除了我的评论。
  • ^ 我很快就投了赞成票。如果我从下面的评论中知道,我会关闭它。

标签: php pdo


【解决方案1】:

execute function of PDO 期望得到参数数组

public bool PDOStatement::execute ([ array $input_parameters ] )

这是你应该在你的代码中使用它的方式:

$stmt->execute( [":email" => $email] );

【讨论】:

  • 谢谢,但它不起作用...我什至尝试了不同的绑定语法 "bind_param (":email",$email") " 但它仍然说错误在语句中
  • 没有你得到的错误是不可能帮助的
  • bind_param 放弃了,您正在与mysqli_connect() 连接,不是吗? @codex
  • @Derek ooow 是的,我怎么可能是盲目的......你说得对,Derek 它起作用了......再次将数据库连接更改为 PDO
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-05
  • 1970-01-01
  • 2014-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多