我有一个基本的问题,刚刚开始深入研究PHP和Mysql。
这个构造中似乎有错误,任何人都可以帮助我吗?
谢谢! ķ。
if ($password = mysqli_query ("SELECT password FROM users WHERE firstname = '$username'")) {
echo "password success!";
}
else {
echo "Password fail!";
}
答案 0 :(得分:1)
如果您有疑问,请参阅手册。
http://php.net/manual/en/mysqli.query.php
现在您使用的是面向对象的样式还是程序?你错过了任何一种方法中的链接。
一旦解决了,你就会遇到函数没有返回字符串的问题。
失败时返回FALSE。对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli_query()将返回一个mysqli_result对象。对于其他成功的查询,mysqli_query()将返回TRUE。
因此,您将在错误或mysqli_result
对象上获得错误。要解析对象,请使用fetch
; http://php.net/manual/en/mysqli-stmt.fetch.php
但首先你应该使用预备语句,这将大大降低你注入SQL的机会; http://php.net/manual/en/mysqli.quickstart.prepared-statements.php
之后你应该用你的查询传递密码,因为你可以让mysql评估密码和用户名是否匹配然后如果你得到返回的结果,你知道数据是有效的。
附加说明:如果是,则不应以纯文本格式存储密码。
=
也分配了一个值。要比较两个值,您需要使用==
或===
。如需更长时间的撰写,请参阅http://php.net/manual/en/language.operators.comparison.php。
答案 1 :(得分:0)
假设您的连接详细信息存储在变量$ db中 首先,您需要在过程模式下为mysqli_query提供数据库连接资源。
$password = mysqli_query($db, "SELECT password FROM users WHERE firstname = '$username'");
答案 2 :(得分:0)
在mysqli中,您必须将 db_connection 存储到变量中,并且必须传入每个查询。以下是您必须遵循的完整路径:
下面的代码是:
<?php
$con = mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if ($password = mysqli_query ($con, "SELECT password FROM users WHERE firstname = '$username'")) {
echo "password success!";
}
else {
echo "Password fail!";
}
?>