Php ';无效的参数编号';使用bindParam创建mySQL查询时出错

Php ';无效的参数编号';使用bindParam创建mySQL查询时出错,php,mysql,pdo,Php,Mysql,Pdo,我编写了一个函数,它接受四个参数,并使用PDO将它们传递到我的MySQL数据库 我正在尝试使用bindParam,以便可以使用变量来构造查询。我遵循了PHP文档中的示例,但我发现以下错误: 错误:SQLSTATE[HY093]:参数编号无效:未绑定任何参数 我做错了什么 function saveAddress($addressLine1, $addressLine2, $town, $county_id) { try { $conn = new PDO('mysql:

我编写了一个函数,它接受四个参数,并使用PDO将它们传递到我的MySQL数据库

我正在尝试使用bindParam,以便可以使用变量来构造查询。我遵循了PHP文档中的示例,但我发现以下错误:

错误:SQLSTATE[HY093]:参数编号无效:未绑定任何参数

我做错了什么

function saveAddress($addressLine1, $addressLine2, $town, $county_id) { try { $conn = new PDO('mysql:host=localhost;dbname=' . DB_DATABASE, DB_USER, DB_PASSWORD); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $conn->prepare('INSERT INTO address (`address_line_1`, `address_line_2`, `town`, `county_id`) VALUES (:addressLine1, :addressLine2, :town, :county_id);'); $stmt->bindParam(':addressLine1', $addressLine1, PDO::PARAM_STR); $stmt->bindParam(':addressLine2', $addressLine2, PDO::PARAM_STR); $stmt->bindParam(':town', $town, PDO::PARAM_STR); $stmt->bindParam(':county_id', $county_id, PDO::PARAM_INT); $success = $stmt->execute(array()); } catch(PDOException $e) { echo 'ERROR: ' . $e->getMessage(); } } 函数saveAddress($addressLine1、$addressLine2、$town、$county\u id){ 试一试{ $conn=newpdo('mysql:host=localhost;dbname='.DB_数据库,DB_用户,DB_密码); $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常); $stmt=$conn->prepare('address\u line\u 1`、'address\u line\u 2`、'town`、'country\u id`)插入地址 值(:addressLine1,:addressLine2,:town,:county_id);'); $stmt->bindParam(':addressLine1',$addressLine1,PDO::PARAM_STR); $stmt->bindParam(':addressLine2',$addressLine2,PDO::PARAM_STR); $stmt->bindParam(':town',$town,PDO::PARAM_STR); $stmt->bindParam(':country_id',$country_id,PDO::PARAM_INT); $success=$stmt->execute(array()); } 捕获(PDO$e){ 回显“错误:”。$e->getMessage(); } }
$stmt->execute接受一个可选的数组参数,该参数表示准备好的语句中要绑定的值

由于显式调用bindParam,因此不需要传入数组param即可执行


作为旁注,如果将来您选择使用数组选项而不是调用bindParam,请注意,该数组中的每个值都将使用PDO::PARAM_STR绑定。

$stmt->execute接受一个可选的数组参数,该参数表示准备好的station中要绑定的值

由于显式调用bindParam,因此不需要传入数组param即可执行


作为旁注,如果将来您选择使用数组选项而不是调用bindParam,请注意,该数组中的每个值都将使用PDO::PARAM_STR绑定。

$stmt->execute接受一个可选的数组参数,该参数表示准备好的station中要绑定的值

由于显式调用bindParam,因此不需要传入数组param即可执行


作为旁注,如果将来您选择使用数组选项而不是调用bindParam,请注意,该数组中的每个值都将使用PDO::PARAM_STR绑定。

$stmt->execute接受一个可选的数组参数,该参数表示准备好的station中要绑定的值

由于显式调用bindParam,因此不需要传入数组param即可执行

作为旁注,如果将来选择使用数组选项而不是调用bindParam,请注意该数组中的每个值都将使用PDO::PARAM_STR绑定