我正在尝试使用参数化SQL执行INSERT
。我是参数化SQL的新手。我的表名是archpedia.full_developers (db.table)
我的联系也很完美。我在我的数据库archpedia上创建了仅具有SELECT, INSERT, UPDATE
权限的自定义用户。我甚至用root检查SQL
只是为了确认用户权限是否有错误,但是root似乎没有用。
这是我的php:
$query = "INSERT INTO full_developers (fullname, username, email, password, project, phone, token, salt) VALUES (?, ?, ?, ?, ?, ?, ?)";
$insert_stmt = $mysqli->prepare($query);
echo "ok?";
if ($insert_stmt) {
$insert_stmt->bind_param('sssssiss', $fullname, $username, $email, $password, $project, $phone, $uniqueToken, $random_salt);
//$insert_stmt->execute();
// Execute the prepared query.
echo "check";
if (! $insert_stmt->execute()) {
header('Location: ../error.php?err=Registration failure: INSERT');
}
}
//header('Location: ./register_success.php');
我的错误是$insert_stmt->prepape($query);
不起作用。我没有得到任何错误。当我在语句回显“检查”以查看天气$insert_stmt
是否正常工作时,它永远不会显示。我无法知道我在哪里做错了,所以任何帮助都会感激不尽。
答案 0 :(得分:2)
首先,如果您有8个值(缺少一个)
VALUES (?, ?, ?, ?, ?, ?, ?)
为8个值添加8个占位符
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
错误报告以检查更多错误
答案 1 :(得分:2)
$ query =" INSERT INTO full_developers(fullname,username,email,password,project,phone,token,salt)VALUES(?,?,?,?,?,?,?,?)&# 34 ;;
/ 用此替换您的查询。 /