【问题标题】:PHP PDO and mysql can not select id with letters [closed]PHP PDO和mysql无法选择带字母的id [关闭]
【发布时间】:2014-03-22 16:35:28
【问题描述】:

在 phpMyAdmin 中查询

SELECT id
FROM `column`
WHERE `id` = "RM3zc7e8"
LIMIT 1

按预期工作以找到结果。但是在函数中使用 PDO 时

function checkID($sid) {
  try {
    $conn = new PDO('mysql:host=' . HOST . ';dbname=' . DATABASE, USER, PASSWORD);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);   

    $stmt = $conn->prepare("SELECT id FROM column WHERE id = :sID");
    $stmt->execute(array('sID' => $sID ));
    $result = $stmt->fetch();

  } catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
  }

  return $result;
}

我无法让它返回任何东西。有什么想法吗?

【问题讨论】:

标签: php mysql pdo


【解决方案1】:

PHP PDO和mysql不能选择带字母的id

其实他们可以。
你的代码没问题。
您的问题不是真正的问题,因为它是由测试中的一些错字或错误引起的。可能在您第一次测试时还没有数据。
另一个答案是错误的,因为 PDO 双向工作。检查一下看看。

实际上,如果 PDO 无法找到具有该名称的占位符,则会抛出 错误。

【讨论】:

  • YCS 是对的,对此感到抱歉。我确定我遇到过这个问题,因此是新的答案,但似乎我错了,我的错
【解决方案2】:

它不起作用,因为你有一个错误的变量名。比较以下

function checkID($sid) {
                 ^

对

$stmt->execute(array('sID' => $sID ));
                              ^

您的函数中没有名为$sID 的变量,因此没有值绑定到您的语句。设为$sid。

【讨论】:

    猜你喜欢
    • 2015-09-02
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    相关资源
    最近更新 更多