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 单引号还是双引号? 的相关文章

  • 在 PHP 中扩展单例

    我正在使用一个 Web 应用程序框架 其中一部分由许多服务组成 所有服务均以单例形式实现 它们都扩展了一个 Service 类 其中实现了单例行为 如下所示 class Service protected static instance p
  • 在 ms-sql 中查找最近的位置

    我将这些参数发送给我的脚本 纬度 41 0186 经度 28 964701 它是示例 我想找到最近的位置的名称 这个怎么做 查询必须更改代码的位置 sql查询 SELECT Name FROM Location WHERE Latitude
  • 会话劫持和 PHP

    让我们只考虑服务器对用户的信任 会话固定 为了避免我使用的固定session regenerate id 仅在身份验证中 login php 会话侧劫持 整个站点的 SSL 加密 我安全吗 阅读 OWASPA3 破坏的身份验证和会话管理 h
  • Oracle SQL 列转行(无需 UNPIVOT)

    我目前拥有的 Team User Apples Oranges Pears Red Adam 4 5 6 Red Avril 11 12 13 Blue David 21 22 23 需要什么 Team User Product Count
  • 关闭语句后的 mysqli + xdebug 断点导致许多警告

    我有一段这样的代码 conn new mysqli host username passwd dbname stmt conn gt prepare SELECT stmt gt bind param stmt gt execute stm
  • 如何在 PHP 的 foreach 循环中获取两个项目? [复制]

    这个问题在这里已经有答案了 我有一个推荐轮播 轮播每次循环浏览两个项目 现在我想每次得到两个项目foreach环形 我怎么才能得到它 Code div div class row div class col md 6 div class s
  • 从其他域发送电子邮件而不是垃圾邮件

    这个问题问了一遍又一遍 仍然没有好的解决方案 当有人使用 php 发送电子邮件并将另一个域放在 from 中时 它最终会成为垃圾邮件 解决方案通常是 使用您的 发件人 并将您想要的域名放入 回复 中 将您的域列入主要邮件服务的白名单 第一个
  • 使用 PHP 上传、调整图像大小并裁剪图像中心

    我想要创建一个非常非常基本的上传 调整大小和裁剪 PHP 脚本 其功能与 Twitter 用于上传头像图片的方法相同 无论如何我最后检查过 我希望脚本拍摄任何尺寸的图像 将最短边的大小调整为 116 像素 然后裁剪顶部和底部 如果是横向 则
  • 将我的本地数据库(Mysql)复制到远程数据库(phpmyadmin)

    My MySQL database local server is connected to a weather station The data are updated continuously on my local server My
  • 如何在 laravel 中查询 json 列?

    我用的是 Laravel 5 6 我有一块田地 字段的数据类型为json 字段 desc 字段 的值如下所示 code 1 club CHE country ENGLAND code 2 club BAY country GERMANY c
  • MySQL 错误 1264:列的值超出范围

    As I SETMySQL 中的 cust fax 表如下所示 cust fax integer 10 NOT NULL 然后我插入这样的值 INSERT INTO database values 3172978990 但随后它说 错误 1
  • Laravel Eloquent with()-> 返回 null

    我正在尝试使用 Eloquent 来获取具有以下功能的特定产品 brand id映射到a的列brands表 该brand数组返回空 这里有什么明显需要改变的地方吗 product Product with images gt with br
  • 如何查找列表/集合是否包含在另一个列表中

    我有一个产品 ID 列表 我想找出哪些订单包含所有这些产品 订单表的结构如下 order id product id 1 222 1 555 2 333 显然我可以通过 PHP 中的一些循环来做到这一点 但我想知道是否有一种优雅的方法可以纯
  • 性能方面插值(直接插入字符串)VS串联[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何将十进制转换为二进制并将其位值恢复到数组中?

    例如 result func 14 The result应该 array 1 1 1 0 如何实施func decbin http docs php net decbin会产生一个字符串二进制字符串 echo decbin 14 outpu
  • PostgreSQL:用以前的值填充时间序列查询中的 NULL 值

    我有一个包含时间相关信息的数据库 我想要一个包含每分钟值的列表 像这样 12 00 00 3 12 01 00 4 12 02 00 5 12 03 00 5 12 04 00 5 12 05 00 3 但是 当几分钟内没有数据时 我得到如
  • 使用 htaccess 文件重定向[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 Edit 我想重定向一个网址 to www example com location sydney from www example com rss
  • 如何使 Postgres Copy 忽略大 txt 文件的第一行

    我有一个相当大的 txt 文件 9gb 我想将此 txt 文件加载到 postgres 中 第一行是标题 后面是所有数据 如果我直接 postgres COPY 数据 标头将导致数据类型与我的 postgres 表不匹配的错误 因此我需要以
  • Drupal 模板/主题资源或建议?

    我有兴趣为我正在开发的 Drupal 网站创建自定义主题 我是 Drupal 的新手 但是我在处理构建主题 CSS PHP HTML 所需的基本概念方面拥有相当多的经验 所以 我的问题是 我从哪里开始 有创建 Drupal 主题的规范指南吗
  • 如何使用多个分隔符拆分列表?

    基本上 我想在文本区域中输入文本 然后使用它们 例如 variable1 variable2 variable3 variable1 variable2 variable3 variable1 variable2 variable3 我知道

随机推荐

  • 由于 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