我想在我的用户表上用sqli在php中执行选择查询。 出于安全原因(SQL注入),我想要使用参数来做到这一点。 另外我想将结果存储在一个php变量中。如何获得选择查询工作sqli
这是我的代码:
的$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>";
}
我得到这个错误:
Warning: mysqli::prepare() [mysqli.prepare]: Couldn't fetch mysqli in C:\xampp\htdocs\cammerta\registreer.php on line 44
Fatal error: Call to a member function bind_param() on a non-object in C:\xampp\htdocs\cammerta\registreer.php on line 45
我希望有人能提供一个解决方案,向我解释,我做错了什么。 在此先感谢!在phpMyAdmin或任何程序
2.Maybe您没有设置变量
谢谢4你的anwser。我从你的例子中找到了来自同一网站的代码。所有已经正确设置我的变量。我想将结果存储在一个变量中,以便检查它是否在行中。 – NickGames 2015-03-19 12:30:44
您的第一个查询运行成功吗? – 2015-03-19 12:31:45
对不起,我把行号放在错误的行之前。现在修复它。 – NickGames 2015-03-19 12:37:03