【发布时间】:2017-09-28 20:33:34
【问题描述】:
我在下面的代码中被困了几个小时。我不知道如何解决这个错误。
注意:未定义变量:第 19 行 D:\xampp\htdocs\recon\register.php 中的 mysqli
致命错误:未捕获的错误:在 D:\xampp\htdocs\recon\register.php:19 中调用成员函数 query() 堆栈跟踪:#0 {main} 在 D:\xampp\htdocs 中抛出\recon\register.php 第 19 行
<?php
$conn = new mysqli('localhost', 'root', '', 'user');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$uname = $_POST['uname'];
$psw = $_POST['psw'];
$options = [
'cost' => 12,];
$hashedpassword= password_hash($psw, PASSWORD_BCRYPT, $options);
$result = $mysqli->query("SELECT username FROM registration WHERE username = '$uname'");
$row_count = $result->num_rows;
if($row_count == 1) {
echo 'User already exists, try another one.'; }
else {
$query = "INSERT INTO user (username, password) VALUES(?, ?)";
$statement = $mysqli->prepare($query);
$statement->bind_param('ss', $uname, $hashedpassword);
if($statement->execute())
{
print 'Success! Last inserted record : ' .$statement->insert_id .'<br />';
}
else
{
die('Error : ('. $mysqli->errno .') '. $mysqli->error);
}
$statement->close();
}
?>
【问题讨论】:
-
你在哪里定义变量
$mysqli?为什么不应该是null? -
那么您是否遵循了两个不同的教程? $conn 与 $mysqli php.net/manual/en/mysqli.query.php#example-1878
标签: php mysql prepared-statement sql-insert