我一直盯着一个问题很久了。
我有一个 PHP 文件,它正在准备插入查询、绑定参数并执行查询(简单)。
询问
$stmt = $db->prepare("SELECT insert_user(?, ?, ?, ?, ?, ?)");
出于某种原因,execute 返回的 $stmt 对象为受影响的行返回 -1。如果我更改代码以使用我想要绑定的值执行插入查询,而不是硬编码,则查询工作得很好。
硬编码查询
$db->query("SELECT insert_user('Test', 'Account', 'testAccount@testApp.io', 'testAccount9', '1980-01-01', 1)");
bind_param 部分出了点问题。我打开了错误并且也在检查 mysqli 错误,但两者都没有返回错误。
PHP文件
...
$postdata = file_get_contents("php://input");
if (isset($postdata) && !empty($postdata)) {
$request = json_decode($postdata);
}
if (
validate_string($request->fname)
&& validate_string($request->lname)
&& validate_integer(intval($request->gender))) {
$stmt = $db->prepare("SELECT insert_user(?, ?, ?, ?, ?, ?)");
if ($stmt) {
$stmt->bind_param("ssssis", $first_name, $last_name, $email, $password, $gender, $dob);
$first_name = $request->fname;
$last_name = request->lname;
$email = $request->email;
$password = password_hash($request->password, PASSWORD_BCRYPT);
$gender = intval($request->gender);
$dob = $request->dob;
$stmt->execute();
if ($stmt->affected_rows > 0) {
echo toJson('success');
} else {
echo toJson('fail');
}
} else {
echo toJson("Prepare failed: (" . $db->errno . ") " . $db->error);
}
} else {
echo toJson('fail - passed data not valid');
}
...
我觉得此时的错误一定很简单,但我已经尝试了至少 23,432 种不同的东西,但都没有成功。
潇湘沐
慕神8447489
随时随地看视频慕课网APP