gpt4 book ai didi

PHP 和 mySQL 单引号还是双引号?

转载 作者:行者123 更新时间:2023-11-29 01:07:32 26 4
gpt4 key购买 nike

我看不出使用单引号或双引号有什么区别。什么时候或为什么我应该使用第一个而不是后者?

我读过一些关于 SQL 我应该使用单数的地方 - 为什么?

最佳答案

您应该使用单引号和 mysql_real_escape_string 的组合或搬入PDO .

mysql_real_escape_string 将负责清理您要存储在数据库中的任何不干净的变量,单引号将阻止其中的任何执行。

这是一个例子:

$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));

PDO 的例子:

$dbh = new PDO('mysql:dbname=your_database;host=your_host', $user, $password);
$stmt = $dbh->prepare('SELECT * FROM users WHERE user = :username AND password = :password');
$stmt->execute(array('username' => $user, 'password' => $password));

如果您没有正确清理将要存储的数据,您可能会遭受 SQL 注入(inject)攻击。

例如一个普通的查询

SELECT * FROM users WHERE user = 'test'

注入(inject)查询:

SELECT * FROM users WHERE user = 'anything' OR 'x'='x'

另一个例子:

SELECT * FROM users WHERE user = ' '; DROP TABLE users

More about SQL injection attack : SQL injection prevention , MySQL Injection

Why you should be using php's PDO for database access

关于PHP 和 mySQL 单引号还是双引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5877892/

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