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

2024-03-03

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

我读过一些关于 SQL 我应该使用单打的文章 - 为什么?


您应该使用单引号和mysql_real_escape_string http://php.net/manual/en/function.mysql-real-escape-string.php或搬进PDO http://php.net/manual/en/book.pdo.php.

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 注入。

例如一个普通的查询

SELECT * FROM users WHERE user = 'test'

注入查询:

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

另一个例子:

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

有关 SQL 注入攻击的更多信息 http://www.php.net/manual/en/security.database.sql-injection.php: SQL注入预防 http://www.learnphponline.com/security/sql-injection-prevention-mysql-php, MySQL注入 http://www.tizag.com/mysqlTutorial/mysql-php-sql-injection.php

为什么应该使用 php 的 PDO 进行数据库访问 http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 和 mySQL 单引号还是双引号? 的相关文章

  • 如何在使用连接池时强制 SqlConnection 物理关闭?

    我明白 如果我实例化一个 SqlConnection 对象 我实际上是从连接池中获取一个连接 当我调用 Open 时 它将打开连接 如果我对该 SqlConnection 对象调用 Close 或 Dispose 方法 它将返回到连接池 但
  • 如何在 PHP 中使用 cURL 发出同时包含 GET 和 POST 参数的请求?

    其他人已经问过如何从 perl java bash 等执行此操作 但我需要在 PHP 中执行此操作 并且我没有看到任何已提出的专门与 PHP 相关的问题 或包含 PHP 的答案 My code ch curl init url curl s
  • 限制自己超载外部 API 的速率

    我发现了很多信息和脚本示例 展示了如何对 API 用户进行速率限制 但我无法找到任何示例来说明在施加这些限制时如何对您自己的 API 请求进行速率限制 我总是用诸如以下的代码来限制我的脚本sleep or usleep命令 但感觉这是一种低
  • 将 Google 信任徽章添加到 Magento

    我正在尝试将 Google Trust Badge 添加到我的 magento 商店 我尝试在 Magento 网站上搜索扩展程序 但找不到 我是否需要将以下代码粘贴到产品和结账页面 还是必须对其进行更改 如果有人能引导我走向正确的方向 我
  • MYSQL 区分大小写的 utf8 搜索(使用 hibernate)

    我的登录表具有 utf8 字符集和 utf8 排序规则 当我想要检查用户名并检索该特定用户名的其他信息时 hql 查询会为我提供小写和大写相同的结果 我应该如何处理适用于案例的 HQL 查询 我使用 Mysql 5 和 java hiber
  • 使用 XSLT 将 XML 转换为 SQL

    由于我无法控制的原因 我将获得一个 XML 文件和一个 XSLT 文件 该文件可以将 XML 文件转换为 SQL 代码或错误 现在让我们假设我们可以信任提供 XML 文件的人不会在 XML 中包含危险的构造 我什至不知道是否应该使用 Sim
  • 为什么我的 if 语句没有按我预期的方式工作?

    我正在尝试实现以下目标 我向我的 SQL 数据库询问使用SELECT FROM subjects 这样做之后我要求使用数组mysqli fetch assoc 在那之前一切都很好 现在的问题是 当我尝试在每个循环中修改 genero 的值
  • apache_request_headers() 与 $_SERVER

    据我所知 apache request headers 提供与以下相同的信息 SERVER 但按键略有不同 为什么有人应该使用apache request headers 而不仅仅是从那里获取这些信息 SERVER 我在 Centos 上使
  • 如何在Sequelize中设置查询超时?

    我想看看如何在 Sequelize 中设置查询的超时时间 我查看了 Sequelize 文档以获取一些信息 但我找不到我要找的东西 我发现的最接近的是 pools acquire 选项 但我不想设置传入连接的超时 而是设置正在进行的查询的超
  • phpunit测试调用其他需要mock的类方法的方法

    我正在尝试创建一个非常标准的单元测试 在其中调用一个方法并断言它的响应 但是我正在测试的方法调用同一类中的另一个方法 该方法做了一些繁重的工作 我想模拟该方法 但仍按原样执行我正在测试的方法 仅使用从调用另一种方法返回的模拟值 我简化了示例
  • Apache、PHP 和 MySQL 可移植吗?

    我可以在外部硬盘上运行 Apache PHP 和 MySQL 吗 我需要这个 因为我在不同的地方工作 计算机 有时我没有安装和配置所有使用的应用程序 当然可以 XAMPP http www apachefriends org en xamp
  • 如何仅使用 PHP5 RecursiveDirectoryIterator 类递归显示具有特定文件类型的文件夹和子文件夹

    您好 我正在尝试使用 FilterIterator 上的扩展来获取 RecursiveDirectoryIterator 类 但由于某种原因 它仅在根目录上进行迭代 我的代码是这样的 class fileTypeFilter extends
  • 是否有适用于所有数据库的标准sql

    如下所示 不同数据库的语法有所不同 是否存在适用于所有数据库的标准方法 有没有什么工具可以将任意sql转换为任意sql SQL Server 2005 CREATE TABLE Table01 Field01 int primary key
  • 从数据库填充复选框

    我有两个表 第一个由与名称关联的 id 组成 1 汽车 2 火车 3 普通 ETC 第二个表由两个字段 user id 和第一个表中的 id 组成 例如 1 1 2 1 3 当用户转到该页面时 我试图重新填充选定的复选框 首先 您查询数据库
  • 了解 SSMS 2008 中关系的更新和删除规则

    当我们定义外键约束时 我对 SQL Server 2008 Management Studio 中的更新和删除规则的含义感到困惑 我也没有找到相关的帮助文档 例如F1帮助 这是屏幕快照 如果有人能描述它们的含义并推荐一些相关文档来阅读 我将
  • 对多个数据库执行 SQL 查询

    我知道我的帖子与该论坛中的其他帖子的标题非常相似 但我真的找不到我需要的答案 这是我的问题 我的 Windows Server 上运行着 SQL Server 在我的 SQL Server 中 我有大约 30 个数据库 它们都具有相同的表和
  • 如何在laravel中注册后自动登录

    我在 laravel 中注册用户时遇到问题 user假设是包含所有数组元素的数组 同时自动登录以下代码结果false 数据库中保存的密码是hash make password user id this gt user model gt ad
  • 使用 php-ews(Exchange Web 服务)在特定日期后获取电子邮件

    在我的 PHP 脚本中 我需要弄清楚如何检索指定消息 ID 之后或特定日期之后的所有电子邮件 两者都可以 我只需要检索自上次抓取收件箱以来的新电子邮件 这个收件箱每天收到数千封电子邮件 而且我在 30 天内无法删除任何电子邮件 对于初始导入
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教

随机推荐

  • 由于 ISAPI 报告不健康状况,ASP Net Core 应用程序被回收

    我收到系统事件日志条目 An ISAPI reported an unhealthy condition to its worker process Therefore the worker process with process id
  • .NET 生产代码中的“Assert”语句

    离开是否明智Trace Assert and Debug Assert代码中的语句是否 稳定 并且已移至测试和生产环境中 如果是这样 这些断言语句有何帮助 让 Guard 类等检查异常情况并适当引发异常还不够吗 调试断言 http msdn
  • MYSQL:带有 if 语句的过程

    我正在尝试制定一个例程 首先检查用户密码 如果正确 它将从不同的表返回一些值或连续更改一些值 如果不进行在 PHP 中处理的两个查询 这是否可能 首先要求输入密码 检查密码是否正确 然后允许用户更改名称 下面是使用电子邮件和密码获取用户中的
  • SCRIPT5:由于 Wordpress 中的 jQuery.min CDN 文件,IE9 上的访问被拒绝

    我读过很多关于 SCRIPT5 IE9 中的访问被拒绝问题的其他文章 但据我所知 这篇文章有点不同 我不太确定为什么会发生这种情况 使用标准 2011 主题安装 Wordpress 3 4 1 时会出现这种情况 我使用以下函数将脚本排入队列
  • Bash 脚本中的反引号和 $() 有什么区别? [复制]

    这个问题在这里已经有答案了 我在 Bash 脚本中看到两种不同的形式 它们的作用似乎相同 some command and some command 两者有什么区别 什么时候应该使用它们 没有任何语义差异 反引号语法是较旧且功能较弱的版本
  • 如何正确使用 Alexa Skill 中的异步函数?

    我对异步编程非常陌生 所以请原谅我缺乏理解 但我目前正在构建一个调用私人停车 API 的 Alexa 技能 您可以调用该API 它会为您提供最近的停车位 const getParkingSpots Handler canHandle han
  • 如何设置夜间模式绘图以按预期工作

    我如何随着夜间模式的变化而改变背景 我有 values 和 values night 文件夹 其中包含具有不同值的 colors xml
  • 了解 MVC 中的模型类与数据类

    多年来我一直使用 Webforms 开发 ASP Net 应用程序 并且完成了一些 MVC 应用程序 但从未真正完整地使用过该框架 这是由于大多数项目的时间限制 虽然 我使用的是 MVC 结构 但我仍然使用旧的方法 即不使用 Html Be
  • ggplot2图例不出现的原因[重复]

    这个问题在这里已经有答案了 我试图 失败 在我的 R ggplot2 图中显示一个涉及多个图的图例 我的数据框df代码如下 Individuals Mod 2 Mod 1 Mod 3 1 2 0 013473145 0 010859793
  • php 只处理第一个空白的爆炸函数

    我有一个字符串Hello This is a String 我只需要在 PHP 中将其分解为第一个White Space 这怎么可能 set limit范围 print r explode str 2 Reference http php
  • SQL Server 碎片问题

    我的数据库中有几个表 User 和 UserRecord 它们变得极其碎片化 例如 99 导致整个数据库以及网站陷入瘫痪 UserRecord 有点像该用户在某个时间点的快照 用户就像该用户的主记录 用户有 0 到多个 UserRecord
  • 自定义 STL 序列的最小嵌套 typedef 集?

    应在满足序列概念的自定义 STL 类中定义的最小嵌套 typedef 集是什么 自定义序列应兼容 std back insert iterator http www sgi com tech stl front insert iterato
  • 从 Apple Developer Portal 中删除开发者证书

    我错误地在我的 Apple 开发者帐户上创建了开发者证书 现在我想从门户中删除它 但我不喜欢任何方法来删除它 您能给我一个如何从苹果开发者门户删除证书的想法 建议吗 如果您错误地创建了证书或者想要重置证书 您可以从 Apple Develo
  • 如何连接位置数据(纬度、经度)

    我必须数据集 一个包含某个位置 经纬度 即测试 另一个包含纽约市所有邮政编码的纬度 经度信息 即 test2 test lt structure list trip count 1 10 dropoff longitude c 73 959
  • AWS Lambda 无法删除 Amazon S3 对象

    我正在尝试创建一个 AWS Lambda 函数 该函数处理上传到第一个存储桶的文件 然后将其保存到第二个存储桶 然后删除输入文件 问题是 当我尝试删除文件时 我得到了 message Access Denied code AccessDen
  • 复制的 std::list 中的垃圾

    我的图形类看起来像 class Graph public typedef unsigned int size type typedef std list
  • 具有静态存储持续时间的对象构造函数中的 std::cout 使用

    使用安全吗std cout在 C 98 C 03 中具有静态存储持续时间的对象的构造函数中 由此看来answer https stackoverflow com a 8785008 1608835它不是 但它不包含标准中的任何引用 只有在
  • 在另一个 for 循环中使用 for 循环

    我正在尝试以彩虹色打印文件 但是我有一个问题 这是我的代码 color 91 93 92 96 94 95 with open sys argv 1 as f for i in f read for c in color print 033
  • 哈希图与数组性能

    当数组的索引已知时 使用数组或 HashMap 是否 性能方面 更好 请记住 示例中的 对象数组 映射 只是一个示例 在我的实际项目中 它是由另一个类生成的 因此我不能使用单独的变量 数组示例 SomeObject objects new
  • PHP 和 mySQL 单引号还是双引号?

    我没有看到使用单引号或双引号有任何区别 我何时或为什么应该使用第一个而不是后者 我读过一些关于 SQL 我应该使用单打的文章 为什么 您应该使用单引号和mysql real escape string http php net manual