gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 20:53:52 33 4
gpt4 key购买 nike

我对 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/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com