【问题标题】:Sample PDO Query don't work示例 PDO 查询不起作用
【发布时间】:2017-09-07 17:58:37
【问题描述】:

我有一个不工作的简单 SQL 查询。我已经尝试了我所知道的一切来修复此查询,但无济于事。

$Data = $connection->prepare("SELECT * FROM EXAMPLE");

数据库上的表存在,与数据库的连接设置正确。

我也试过这个:

$Data = $connection->prepare("SELECT ID FROM EXAMPLE WHERE EXAMPLE1=:EXAMPLE1 ");
$Data->execute(array(
   ':EXAMPLE1' => $EXAMPLE1,
));

【问题讨论】:

  • 你确定你已经“尝试了一切”吗?当您提供的代码实际上可能按预期工作时,似乎不太可能
  • 你以后用$Data做什么?
  • @GrumpyCrouton 我从 5 小时前开始尝试解决这个问题。
  • 查看此文档phpdelusions.net/pdo
  • 不要使用rowcount 进行选择。 php.net/manual/en/pdostatement.rowcount.phpIf the last SQL statement executed by the associated PDOStatement was a SELECT statement, some databases may return the number of rows returned by that statement. However, this behaviour is not guaranteed for all databases and should not be relied on for portable applications.

标签: php sql pdo


【解决方案1】:

如果您的连接良好..

$Data=$connection->prepare("SELECT ID FROM EXAMPLE WHERE EXAMPLE1 = :EXAMPLE1");
$Data->execute(array(
   ':EXAMPLE1' => $EXAMPLE1,
));
$result = $Data->fetchAll();

或者

$result = array();
$sql = "SELECT ID FROM EXAMPLE WHERE EXAMPLE1 = {$EXAMPLE1};";
foreach ($connection->query($sql) as $row) {
    $result[] = $row;
}

【讨论】:

  • mm 检查你的连接php.net/manual/es/pdo.construct.php 然后在phpmyadmin或者管理界面执行你的查询或者使用控制台sql执行你的查询。
  • 用户权限?
  • 所以,如果日志中不存在错误,则连接正常并且用户权限正确,数据库,表和寄存器存在..我不知道兄弟可能是错误:( 但尝试在 prepare() 之后使用 errorInfo - php.net/manual/es/pdo.errorinfo.php
  • 我会删除第二个 sn-p。使用带有绑定变量的准备好的语句总是更好。如果它是一个字符串,那么你需要引用它。如果字符串中有引号怎么办?
  • @Cuchu 永不投降!
猜你喜欢
  • 2014-12-09
  • 2018-11-28
  • 2013-10-04
  • 2014-07-09
  • 2013-08-18
  • 2013-06-15
  • 2014-01-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多