【问题标题】:Bind array into select query [closed]将数组绑定到选择查询中[关闭]
【发布时间】:2015-12-28 12:27:11
【问题描述】:

在这种情况下,我尝试在另一个选择查询中绑定一个值数组$ownco,但它不起作用。我怎样才能意识到,所有值都在第二个查询中被检查/传递?

<?php

$hostname = 'localhost';
$user = 'root';
$password = '';
$username = $_COOKIE['username'];
try {
    $dbh = new PDO("mysql:host=$hostname;dbname=searchfood", $user, $password);

    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line
    $sql = "SELECT id_post
            FROM comments
            WHERE  username = $username
            ORDER BY id DESC"; // oder (longitude between $loo and $lo or latitude  between $laa and $la) versuchen
    if ($res = $dbh->query($sql)) {// need to add this line in your code
        // then after fetchColumn
        $ownco = $res->fetchAll();
    }
} catch (PDOException $e) {
    echo $e->getMessage();
}

$userid = $_COOKIE['userid'];
try {
    $dbh = new PDO("mysql:host=$hostname;dbname=searchfood", $user, $password);

    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line
    $sql = "SELECT id, autorid, autor, date, longitude, latitude, title, text, town, time
            FROM posts
            WHERE  id = $ownco
            ORDER BY id DESC"; // oder (longitude between $loo and $lo or latitude  between $laa and $la) versuchen
    if ($res = $dbh->query($sql)) {// need to add this line in your code
        // then after fetchColumn
        $resultcom = $res->fetchAll();
    }
} catch (PDOException $e) {
    echo $e->getMessage();
}
?>

【问题讨论】:

  • 我在你的代码中没有看到$owncomments
  • 我没有看到你在哪里“绑定”了任何参数。

标签: php mysql sql pdo foreach


【解决方案1】:

你的问题有几个问题。

  • 首先,您接受了没有回答的答案。违反规则?
  • 其次,由于错误的 SQL 语法和缺少准备好的语句,您的第一个查询将永远无法运行。
  • 第三,$ownco 不包含您期望的数据结构。
  • 第四,将数组与 PDO 绑定是一个非常简单的问题,已经在许多答案甚至PDO tag wiki 中进行了解释。
  • 第五,您根本不需要第二个查询。相反,您必须在第一个查询中使用 JOIN

【讨论】:

  • 我在谷歌“内爆”之后认为这是我的问题的解决方案,但现在我检查了错误。我在项目中的许多查询中使用了 pdo,但一切正常。感谢您的提示和链接。
【解决方案2】:

如下更改您的第二个查询

$sql = "SELECT id, autorid, autor, date, longitude, latitude, title, text, town, time 
        FROM posts
        WHERE  id in (" . implode(",",$ownco) . ")
        ORDER BY id DESC";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 2011-12-30
    • 1970-01-01
    • 2020-09-15
    • 2018-04-30
    • 1970-01-01
    • 2018-02-26
    相关资源
    最近更新 更多