SQLSTATE[HY093] 参数编号无效

问题描述 投票:0回答:2

我有这个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

我的错误在哪里???

php mysql pdo
2个回答
2
投票

您的最后一个值名为

checked
,但您正在使用名为
:checked
的键执行查询。更改其中之一,使名称匹配。


1
投票

在 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)');
    
    
© www.soinside.com 2019 - 2024. All rights reserved.