gpt4 book ai didi

PHP - SQL 查询周围的单引号或双引号?

转载 作者:行者123 更新时间:2023-11-29 03:50:14 24 4
gpt4 key购买 nike

在整个 SQL 查询中使用单引号与使用双引号有什么不同吗?

哪个更好:

这种方法(带单引号):

    $username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);

$sql = 'SELECT * FROM users WHERE username = "' . $username . '" AND password = "' . $password . '" LIMIT 1';

?

或者这种方法(使用双引号):

    $username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);

$sql = "SELECT * FROM users WHERE username = '{$username}' AND password = '{$password}' LIMIT 1";

有没有更好的方法来完成这个?

对我来说,我喜欢第一种方法,因为我总是喜欢 PHP 中的单引号。所以我想确保在整个 SQL 查询周围使用单引号是可以的,在变量或数据周围使用双引号也是可以的,并且是跨平台的并且可以与 MySQL 以外的数据库一起使用!

最佳答案

使用PDO而不是这些方法中的任何一种。它将允许您使用参数而不是字符串。

$sth = $dbh->prepare('SELECT * FROM users WHERE username = :username AND password = :password LIMIT 1');
$sth->bindParam(':username', $username, PDO::PARAM_STR);
$sth->bindParam(':password', $password, PDO::PARAM_STR);
$sth->execute();

顺便说一句,请确保您没有同时使用纯文本密码。

关于PHP - SQL 查询周围的单引号或双引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7225098/

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