使用PDO和mySQL返回单个值的正确语法是什么?

时间:2017-11-28 23:46:28

标签: php mysql pdo

我试图将我的sql切换到PDO,但是我甚至无法通过这个简单的查询来返回值。当然,这可能不是那么困难。我以老式的方式完成了相同的查询,并且按预期完美运行。 PDO版本什么都不返回。这里的诀窍是什么?

第一个版本返回我期望的值。

  $customfieldid = 676;
  $entityid = 9784549;
  $entitytype = 'familyoverview';

  $sql = "select value
                  from customfieldvalues
                 where customfieldid = ".$customfieldid."
                   and entityid = ".$entityid."
                   and entitytype = '".$entitytype."'";

  $result = mysql_query($sql);

  if($row = mysql_fetch_array($result)) {
    $mysqlvalue = $row["value"];
    echo "<br>mysql value: ".$mysqlvalue;
  }

此PDO版本不返回任何内容。

  $sql = "select value
                  from customfieldvalues
                 where customfieldid = :customfieldid
                   and entityid = :entityid
                   and entitytype = :entitytype";

  $stmt = $pdo->prepare($sql);
  //$stmt->bindValue(':customfieldid', $customfieldid, PDO::PARAM_INT);
  //$stmt->bindValue(':entityid', $entityid, PDO::PARAM_INT);
  //$stmt->bindValue(':entitytype', $entitytype, PDO::PARAM_STR);

  $stmt->bindValue(':customfieldid', 676, PDO::PARAM_INT);
  $stmt->bindValue(':entityid', 9784549, PDO::PARAM_INT);
  $stmt->bindValue(':entitytype', 'familyoverview', PDO::PARAM_STR);

  $pdovalue = $stmt->fetchColumn();
  echo "<br>pdo value: ".$pdovalue;

我确认我有一个pdo数据库连接。我尝试使用第三个参数并省略bindValue调用中的第三个参数。我也试过对bindValue调用中的值进行硬编码而不是传递它们,但这些都没有任何区别。

0 个答案:

没有答案