我有这个sql语句:
try {
$sql = $db->prepare( 'INSERT INTO customers (UID, kundennr, salutation, fname,
lname, organization, email, phone, address, zip, city, CHECKED)
VALUES (:uid, :kundennr, :salutation, :fname, :lname, :organization, :email, :phone, :address, :zip, :city, CHECKED)');
$sql->execute( array(
":uid" => 0,
":kundennr" => $customerNumber,
":salutation" => $salutation,
":fname" => $fname,
":lname" => $lname,
":organization" => $organization,
":email" => serialize($emails),
":phone" => serialize($phones),
":address" => $address,
":zip" => $zip,
":city" => $city,
":checked" => $checked
));
} catch (PDOException $e) {
echo $e->getMessage();
}
但我收到此错误:
SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
我的错误在哪里???
您的最后一个值名为
checked
,但您正在使用名为 :checked
的键执行查询。更改其中之一,使名称匹配。
在 VALUES 中,您错过了 checked
之前的
冒号。
使用以下 SQL 查询:
$sql = $db->prepare( 'INSERT INTO customers (UID, kundennr, salutation, fname,
lname, organization, email, phone, address, zip, city, CHECKED)
VALUES (:uid, :kundennr, :salutation, :fname, :lname,
:organization, :email, :phone, :address, :zip, :city, :checked)');