[英]How to get select query working sqli
我想在PHP中使用sqli在用户表上执行选择查询。 出于安全原因(SQL注入),我想使用参数来做到这一点。 我也想将结果存储在php变量中。
这是我的代码:
$conn
变量正确填写。
$login = $_POST['username'];
//Check if username is available
/*Line44*/ $stmt = $conn->prepare("SELECT login FROM users WHERE login = ?");
/*Line45*/ $stmt->bind_param('s', $login);
$result = $stmt->execute();
if ($result->num_rows > 0)
{
echo "This username is in use.";
}
else
{
//Add account to database
$stmt = $conn->prepare("INSERT INTO users (login, password, email, gender) VALUES (?, ?, ?, ?)");
$stmt->bind_param('ssss', $login, $md5pass, $email, $gender);
$stmt->execute();
$stmt->close();
echo "<font color=\"#254117;\">Your account is succesfully geregistered! <br />U can now login!</font>";
}
我收到此错误:
警告:mysqli :: prepare()[mysqli.prepare]:无法在第44行的C:\\ xampp \\ htdocs \\ cammerta \\ registreer.php中获取mysqli
致命错误:在第45行的C:\\ xampp \\ htdocs \\ cammerta \\ registreer.php中的非对象上调用成员函数bind_param()
我希望有人可以提供解决方案并向我解释我做错了什么。 提前致谢!
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');
$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);
$stmt->execute();
加
1.请在phpmyadmin或任何程序中运行查询
2.也许你没有设置变量。 $ login,$ md5pass,$ email,$ gender
$ stmt = $ conn-> prepare语句可能返回false。请使用给定的代码来获取查询错误。
if ($stmt = $conn->prepare('your query')) {
$stmt->bind_param(...);
}
else {
printf("Error=: %s\n", $conn->error);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.