我正在尝试使用参数化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);
不起作用。我没有任何错误。当我输入语句echo"check"查看$insert_stmt
是否工作时,它永远不会显示。我不知道我到底在哪里做错了,所以任何帮助都将不胜感激。
如果您有8个值(多缺少一个)
VALUES (?, ?, ?, ?, ?, ?, ?)
为8个值添加8个占位符
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
错误报告以检查进一步的错误
$query="INSERT INTO full_developers(全名、用户名、电子邮件、密码、项目、电话、令牌、盐)VALUES(?,?,??,?、?、?,?)";
/将您的查询替换为this/