php - 不明确的 PDO 声明 - Php?

标签 php mysql mysql-error-1052

因此,我正在尝试获取某门类(class)的所有评论。它告诉什么类(class)有哪些评论的方式是 course.php?cID=1563 例如。 cID 是执行此区分的标识符。

它不断抛出这个 fatal error : fatal error :未捕获异常“PDOException”,消息为“SQLSTATE[23000]:违反完整性约束:1052 列“cID”在 where 子句中不明确”PDOStatement->execute(Array ) #1 在第 42 行抛出

(2) 个表的数据库结构: tables

PHP:

<?php
// Get course information cID, prefix, code and dept info : name
$cID = filter_input(INPUT_GET, 'cID', FILTER_SANITIZE_NUMBER_INT);
if(!$cID) {
    echo "No cID specified.";
    exit;
}
$username = "###";
$password = "###";
$pdo2 = new PDO('mysql:host=localhost;dbname=####', $username, $password);
$pdo2->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sth2 = $pdo2->prepare('
    SELECT Co.info, Co.date
    FROM Course C, Comment Co
    WHERE C.cID = Co.cID
    AND cID = ?;
    ;');
$sth2->execute(array(
    $cID
));
?>

PHP 调用上面的代码:

<?php
                    // Did we get any *course detail*
                    if($sth2->rowCount() > 0) {
                        $row = $sth2->fetch(PDO::FETCH_ASSOC);
                        echo "<img class='left' style='margin:5px;' src='img/courseComment.png'/> <p> {$row['info']} </p>";
                        } else {
                        echo "No results.";
                    }
                unset($sth2);
                ?>

为什么会这样?如果有人可以帮助我进行解释和代码修复,我们将不胜感激。该 url 还包含页面的 cID。

最佳答案

您指的是存在于两个表中的 cID 列。更新您的查询 ($sth2) 以仅指向其中一个表,如下所示:

SELECT Co.info, Co.date
    FROM Course C, Comment Co
    WHERE C.cID = Co.cID
    AND C.cID = ?;

关于php - 不明确的 PDO 声明 - Php?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5615791/

相关文章:

mysql - 来自多个表的内部连接

php - 如何从数据库创建选择选项?

java - 高可用性 Web 应用程序 - 如何升级?

MySql查询获取id包含在vba数组中的记录

mysql - from 子句中的列 'idproduct' 不明确

sql - 1052 : Column 'id' in field list is ambiguous

php - "No completions available"在 var_

php - symfony2 - 如何在每个页面中全局检索数据库中的数据

PHP/MySQL 格式化 : An example of how this type of data is used?

mysql - 如何将这两个查询合并为一个