【发布时间】:2013-11-17 16:14:13
【问题描述】:
我收到错误“变量数与准备语句中的参数数不匹配”
$stmt = $this->conn->prepare( "INSERT INTO user
(
st1, u1, e1, sa1,
h1, roles_id, name_titles_id, first_name,
last_name, phone, mobile, address_road,
address_area, address_region, post_code, city,
country_id, creation_date, activated_at, modified_date_time,
created_by, referred_by, gender, ad1, status
)
VALUES
(
?, ?, ?, ?,
?, ?, ?, ?,
?, ?, ?, ?,
?, ?, ?, ?,
?, ?, ?, ?,
?, ?, ?, ?, ?
)"
)
$stmt->bind_param('i',$st1);
$stmt->bind_param('s',$u1);
$stmt->bind_param('s',$e1);
$stmt->bind_param('s',$sa1);
$stmt->bind_param('s',$h1);
$stmt->bind_param('i',$roles_id);
$stmt->bind_param('i',$name_titles_id);
$stmt->bind_param('s',$first_name);
$stmt->bind_param('s',$last_name);
$stmt->bind_param('s',$phone);
$stmt->bind_param('s',$mobile);
$stmt->bind_param('s',$address_road);
$stmt->bind_param('s',$address_area);
$stmt->bind_param('s',$address_region);
$stmt->bind_param('s',$post_code);
$stmt->bind_param('s',$city);
$stmt->bind_param('i',$country_id);
$stmt->bind_param('s',$creation_date);
$stmt->bind_param('s',$activated_at);
$stmt->bind_param('s',$modified_date_time);
$stmt->bind_param('i',$created_by);
$stmt->bind_param('i',$referred_by);
$stmt->bind_param('s',$gender);
$stmt->bind_param('s',$ad1);
$stmt->bind_param('i',$status);
编辑:
做个小测试就可以了,mysqli不能使用多个bind_param。
不工作:
$stmt->bind_param('s',$a);
$stmt->bind_param('s',$b);
工作:
$stmt->bind_param('ss',$a, $b);
希望它对以后的搜索有用。
【问题讨论】:
-
谢谢,让我修一下。
-
@GordonLinoff 我更改了查询,但仍然出现相同的错误“变量数与准备语句中的参数数不匹配”
-
@Pekka웃 不,它不工作:(
-
@GordonLinoff 您链接到的手册页说语法没问题。我可以在哪里对您的评论投反对票?
标签: php mysql mysqli prepared-statement