PDOStatement类的对象无法转换为字符串

时间:2016-05-27 12:20:30

标签: pdo

我将mysqli连接更改为PDO语句,因此我的页面上出现了很多错误,这是我的代码请帮助我们

。 。

if ($fn && $ln && $e && $p) { // If everything's OK...

    // Make sure the email address is available:
    //$q = "SELECT user_id FROM users WHERE email='$e'";
    $q = $dbc->query("SELECT user_id FROM users WHERE email='$e'");
    $q->execute(array($e));
    $r = $q->fetchAll(PDO::FETCH_ASSOC);

    //$r = mysqli_query ($dbc, $q) or trigger_error("Query: $q\n<br />MySQL Error: " . mysqli_error($dbc));
    if (mysqli_num_rows($r) == 0) { // Available.

        // Create the activation code:
        $a = md5(uniqid(rand(), true));

1 个答案:

答案 0 :(得分:0)

以下是您转换为PDO的代码。

// Make sure the email address is available:
$q = $dbc->query("SELECT user_id FROM users WHERE email=?");
$q->execute(array($e));
$r = $q->fetchColumn();

if (!$r) { // Available.
    // Create the activation code:
    $a = md5(uniqid(rand(), true));

有三件事已经纠正

  1. 您必须始终使用占位符tp表示查询中的变量。
  2. 要从结果中获取单个值,必须使用fetchColumn代替fetchAll
  3. 不需要手动报告,因为正如我this tutorial我写的
  4. 中所描述的那样,PDO可以自动报告错误。