有人可以告诉我这行代码有什么问题吗?我目前是新的,现在尝试使用mysqli预编译语句,以便连接到数据库后端。 到目前为止,我似乎无法更新数据库。
$stmt = $mysqli->prepare("INSERT INTO canada VALUES (?,?,?,?,?,?)");
$stmt->bind_param('sssiss',$_REQUEST["UserID"],$_REQUEST["FirstName"],
$_REQUEST["LastName"],$_REQUEST["Age"],$_REQUEST["WhatParty"],
$_REQUEST["Electorate"]);
$stmt->execute();
答案 0 :(得分:1)
问题是(?,?,?,?,?,?)
bind_param
和7个参数
尝试
$stmt = $mysqli->prepare("INSERT INTO canada VALUES (?,?,?,?,?,?,?)");
答案 1 :(得分:1)
问题是第一个绑定param的参数,它指的是有两个integer类型的字段,它们不是真的。
如果用户id和age是int,则rest是字符串类型 它应该是 我是整数,s是字符串
- 更新
$db = new mysqli($server_host, $server_user, $server_password, $server_db);
if (mysqli_connect_errno()) {
printf("DB error: %s", mysqli_connect_error());
exit();
}
$stmt = $db->prepare("INSERT INTO canada
userid,firstname,lastname,age,whatparty,electorate)
VALUES (?,?,?,?,?,?))");
$stmt->bind_param("ississ",$_REQUEST["UserID"],$_REQUEST["FirstName"],
$_REQUEST["LastName"],$_REQUEST["Age"],
$_REQUEST["WhatParty"],$_REQUEST["Electorate"]);
$stmt->execute();