PDO错误:致命错误:插入值列表与列列表不匹配

时间:2017-06-21 12:31:14

标签: php mysql pdo

我将它插入到我的数据库表中,它给了我一个非常奇怪的错误,我的列数与值计数匹配(除非我非常愚蠢)。还有什么可能导致此错误?我刚刚开始使用PDO PHP。

我的代码是:

$sql2 = "INSERT INTO `10 yeah plus windows`(`adults in property`, `age`, `alternative number`, `date of appointment`, `debt`, `employment status`, `energy spend`, `homeowner`, `lead id`, `notes`, `number of doors`, `number of windows`, `time of appointment`, `windows last replaced`) VALUES ('?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?')" ;
                                    $result = $conn->prepare($sql2);
                                    $count = $result->execute(array($_POST['adultsinproperty'], $_POST['age'], $_POST['alternativenumber'], $_POST['appdate'], $_POST['debt'], $_POST['employmentstatus'], $_POST['energy'], $_POST['homeowner'], $last_id, $_POST['notes'], $_POST['number_of_doors'], $_POST['number_of_windows'], $_POST['apptime'], $_POST['windowslastreplaced']));

3 个答案:

答案 0 :(得分:1)

你应该尝试这个

$sql2 = "INSERT INTO `10 yeah plus windows`(`adults in property`, `age`, `alternative number`, `date of appointment`, `debt`, `employment status`, `energy spend`, `homeowner`, `lead id`, `notes`, `number of doors`, `number of windows`, `time of appointment`, `windows last replaced`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" ;
                                $result = $conn->prepare($sql2);
                                $count = $result->execute(array($_POST['adultsinproperty'], $_POST['age'], $_POST['alternativenumber'], $_POST['appdate'], $_POST['debt'], $_POST['employmentstatus'], $_POST['energy'], $_POST['homeowner'], $last_id, $_POST['notes'], $_POST['number_of_doors'], $_POST['number_of_windows'], $_POST['apptime'], $_POST['windowslastreplaced']));

请注意,查询中的值没有单引号。

答案 1 :(得分:0)

问题在于:

INSERT INTO 10 yeah plus windows

表名不包含空格,因为您的名称为yeah plus windows,而不是空格_,然后重试。

答案 2 :(得分:0)

您不能在表名和字段中使用空格。

试试这段代码,

$sql2 = "INSERT INTO `10_yeah_plus_windows`
(`adults_in_property`, `age`, `alternative_number`, `date_of_appointment`, `debt`, `employment_status`, `energy_spend`, `homeowner`,
 `lead_id`, `notes`, `number_of_doors`, `number_of_windows`, `time_of_appointment`, `windows_last_replaced`) VALUES 
('?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?')" ;
$result = $conn->prepare($sql2);
$count = $result->execute(array($_POST['adultsinproperty'], $_POST['age'], $_POST['alternativenumber'], $_POST['appdate'], $_POST['debt'], $_POST['employmentstatus'], $_POST['energy'], $_POST['homeowner'], $last_id, $_POST['notes'], $_POST['number_of_doors'], $_POST['number_of_windows'], $_POST['apptime'], $_POST['windowslastreplaced']));