php - MySQL PDO 错误 : SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1

标签 php mysql pdo

我对 PHP PDO 编程来说确实是全新的,所以我只是在学习东西。 我在所附代码中遇到了以下错误,我已经盯着它看了几个小时,但就是看不到我的错误。

Error: SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1

我知道这告诉我,要么我在 SQL 语句中没有正确的列数,要么我向execute() 语句传递了错误数量的变量。但我一辈子都找不到自己的错误。

我需要更有知识的人的另一双眼睛来发现我的错误。

有人可以帮忙吗?

非常感谢, 杰夫

这是代码:

        try {
         $conn = new PDO("mysql:host=$servername;dbname=$dbname",
                 $username, $password);
         $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
         $stmt = $conn->prepare("INSERT INTO stagewishes
                    (id,wisher_name,description)
                    VALUES (:id,:name,:description,
                            (select
                                  wishes.id,
                                  wishers.name,
                                  wishes.description
                                  from wishes
                                  left join wishers
                                  on wishes.wisher_id = wishers.id
                                  where wishes.wisher_id = '$search_desc'
                                  order by wishes.id))");

         $stmt->bindParam(":id",$v_id,PDO::PARAM_INT);
         $stmt->bindParam(":name",$v_wishername,PDO::PARAM_STR);
         $stmt->bindParam(":description",$v_description,PDO::PARAM_STR);

         $stmt->execute();

最佳答案

您的子查询正在将四个字段/值返回到仅允许单个值的上下文中。

INSERT INTO stagewishes
            (id,wisher_name,description)
             1     2           3
            VALUES (:id,:name,:description,(select ...)
                     1    2         3          4567...???

并且您的顶级插入已经指定了仅三个字段的值,但您却试图填充 4+。

换句话说,学会阅读错误消息:列计数与值计数不匹配:3 列,4 个以上值。

关于php - MySQL PDO 错误 : SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37795371/

相关文章:

MySQL条件表更新未知列错误1054

php - SQLSTATE [HY093] : Invalid parameter number: parameter was not defined

php - 在 yii2 中迁移时出现异常 'could not find driver'

php - 查询条件以从表单中插入数据

php - MySql 和 PDO : How to send a null param with bindParam()

php - 如何实现依赖输入字段的Jquery?

php - ORDER BY column_name 帮助(通过 HTML TableView 中的链接)(PHP MySQL

php - CakePHP IN 数组条件不适用于一键

php - 如何包含具有相对路径的文件?

php - 创建composer包时,我应该选择什么 "Package Type"