php - 为什么这个 PHP PDO 函数不从数据库返回值?

标签 php mysql excel web

我有一个 Web 应用程序,它接受 Excel 电子表格、解析数据并将该数据添加到 MySQL 数据库。有些床单很好,一切都按预期进行。然而,有些工作表在应该返回 true 时却没有返回。在输入数据之前,我有一个通用函数,它将检查该表中的值,然后返回 truefalse。这个函数看起来像这样:

//Check if a sql will return with any values
function tableCheck($table, $column, $value){
  //PDO Connecttion
  $core = Core::getInstance();

  $sql = "SELECT * FROM $table WHERE $column = :value;";

  //Create a prepared statement
  $stmt = $core->dbh->prepare($sql);
  $stmt->bindParam(':value', $value, PDO::PARAM_STR);

  $stmt->execute();

  //return true if there is a hit on that value
  if($stmt->rowCount() > 0){
    return true;
  } else {
    return false;
  }

}

就像我说的,这有时有效,有时无效,并且我从该表中获得了大量重复值。显然这严重扰乱了我的数据。

起初我认为这与特殊字符有关,但后来我发现该字段没有特殊字符的工作表也有类似的问题。此问题也仅发生在单个列上。在所有情况下,工作表的其他字段都解析得很好。

知道什么可能导致此问题吗?

编辑:我还想指出,如果我将数据复制/粘贴到 MySQL 工作台或命令行中,它确实会返回行。

最佳答案

这看起来很危险,但我确信你正在做某种过滤,对吧? :)

听起来你的一些表或列名称可能是 reserved words ,例如 ASBY

在查询中在它们周围打勾:

$sql = "SELECT * FROM `$table` WHERE `$column` = :value;";

关于php - 为什么这个 PHP PDO 函数不从数据库返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26877696/

相关文章:

php - CakePHP 3 中的内部联接不返回任何行

php - 双三元的意外结果

php - 在登录后可编辑的表中仅显示用户自己的帐户,PHP Mysql

java - 如何在 Java 中的 Excel 工作簿之间复制工作表

excel - 如何创建多工作表 Excel jasper 报告?

php - 在 Laravel 中自动发送电子邮件

java - 如何在java jframe表中插入递增的主键和外键?

Mysql JSON类型使用spring data jpa有乱码

mysql - 提高全文搜索性能

algorithm - Excel多项式曲线拟合算法