【问题标题】:PDO and IS NOT NULL FunctionPDO 和 IS NOT NULL 函数
【发布时间】:2012-09-09 20:21:32
【问题描述】:

我是 PDO 的新手,我想知道是否存在与 mysql 语句等效的检查参数是否为空的语句,例如:

SELECT * FROM table
WHERE param IS NOT NULL

我试过了:

$pdo->prepare('SELECT * FROM ' . $tablename . ' WHERE ' . $field . ' = :' . $field . 'AND param IS NOT NULL');

没有任何成功。 我也在网上看了,但没有找到任何相关的东西,有人可以帮忙吗?

【问题讨论】:

  • 在 AND 之前需要一个空格(所以 ' AND...' 不是 'AND...')。
  • 谢谢,我也没注意到...

标签: mysql null pdo prepared-statement


【解决方案1】:

您可以在 pdo 中使用任何可以直接在 mysql 中使用的查询,但是您这样做的方式首先违背了使用 PDO 的目的,您应该将查询表述为

$q = $pdo->prepare("SELECT * FROM $tablename WHERE field = :field AND param IS NOT NULL");
$q->execute(array('field' => $field));

【讨论】:

  • 谢谢,这也是我用的,实际上问题出在其他地方,参数未设置为具有 NULL 值 => 男生错误!
  • 所有奇怪的事情都会发生,多注意错误信息,为你正在使用的所有东西(php、mysql等)设置一个日志,当有些东西不起作用时看看原木的尾巴。
【解决方案2】:

是……

$sql = "SELECT * FROM `tablename` WHERE :field IS NOT NULL";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':field', $field);

…您在寻找什么?

【讨论】:

  • 我几乎可以肯定你不能绑定字段名,只能绑定值。准备好的语句需要预定义的表和字段名称。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
  • 2021-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-21
相关资源
最近更新 更多