使用 MySQLi 插入数据
此代码似乎正在执行所有调试检查,但无法将新数据插入数据库。让我们逐步分析一下。
代码尝试检查“username”是否已存在于“UserData”表中。如果没有,它会尝试添加新行。然而,它在插入部分遇到了问题。
识别问题
问题在于为插入语句声明绑定参数的方式。不应多次传递单个变量(例如 $username、$password 两次),而应将它们与其相应的类型一起传递。
解决方案
bind_param 函数期望变量类型位于变量本身之前。因此,绑定参数的正确方法是:
$stmt2->bind_param('ss', $username, $password);
或者,如果您使用 PHP 5.6 或更高版本,则可以使用扩展运算符 (...) 来简化:
$data = ['user' => 'someUser', 'password' => 'secret']; $stmt2->bind_param('ss', ...$data);
一旦参数绑定正确,插入就会成功。请注意,您的问题中提供的代码有一些可能令人困惑或不必要的注释;为了清晰起见,建议将其删除。
以上是尽管通过了所有调试检查,为什么我的 MySQLi 插入失败?的详细内容。更多信息请关注PHP中文网其他相关文章!