gpt4 book ai didi

php - 验证用户名和密码的最快方法 PHP - MySQL - MySQLi - PDO - 准备好的语句

转载 作者:行者123 更新时间:2023-11-29 02:00:09 25 4
gpt4 key购买 nike

我是新手,这是我的第一篇文章。我希望有一天我能帮助像我这样的新手。同时,我提前感谢您的答复。

下面的脚本是检查 MySQL 数据库中用户名和密码是否匹配的最快和最有效的方法吗?

如果它实际上是最有效的,那么它的等价物是什么:

1 - 使用 MySQLi 使用(程序风格)。

2 - 使用 MySQLi(面向对象风格)。

3 – 将 MySQLi 与准备好的语句一起使用 - 面向对象的风格。

4 – 将 PDO 与准备好的语句一起使用 - 面向对象风格。

$connection = mysql_connect('localhost','root','pass') or die(mysql_error());
$database = mysql_select_db("database_name",$connection);

$sql = "SELECT count(*) FROM members WHERE username = '$username' AND
password ='$password' LIMIT 1";

$result = mysql_query($sql) or die(mysql_error());

if (mysql_result($result, 0) > 0){

echo 'found User <br />';
}

if (mysql_result($result, 0) < 1){

echo 'username or password does not exist';
}

最佳答案

这个请求很弱,可以进行SQL注入(inject)。以下是如何将变量传递给您的查询:

$query = sprintf("SELECT COUNT(*) FROM members 
WHERE username='%s' AND password='%s'",
mysql_real_escape_string($username),
mysql_real_escape_string($password));

$result = mysql_query($sql) or die(mysql_error());

否则这个查询似乎没问题。

在 PDO 中它会是这样的:

$pdo = new PDO('mysql:host='.$host.';dbname='.$database, $username, $password);
$query = $pdo->query('YOUR QUERY HERE');

if(is_object($query)) {
while($result = $query->fetch()) {

// Do your things here...
}
}

关于php - 验证用户名和密码的最快方法 PHP - MySQL - MySQLi - PDO - 准备好的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16867834/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com