php单双引号对变量解析的影响以及php向mysql插入数据时的变量解析问题详解

原创 2016年11月16日 16:36:40

php单双引号对变量解析的影响以及php向mysql插入数据时的变量解析问题详解

该博客对php中echo输出语句中单双引号的使用区别给出了详细解释,并阐明了php向mysql写入数据时变量解析的规范问题,如有歧义请及时指出。

  • echo语句中单双引号的区别

我们在学习php时大概都遇到过这样的问题,即经常见到代码中使用echo语句时有时候使用单引号,有时候使用双引号,那么到底该使用哪个呢?它们又有什么区别呢?
其实,大多数学过php的人都知道,在php中,被单引号引起来的变量不产生变量作用,而双引号引起来的变量产生变量作用。简而言之,单引号不能识别变量,而双引号可以识别变量。如下验证:
代码演示

代码中,我们声明了一个变量$b,并分别使用双引号和单引号对其进行echo输出,结果显示为:
结果展示
从上图结果中我们可以看出,双引号引起来的变量产生了变量作用,输出了变量$b的值,单引号引起来的变量没有产生变量作用,而是直接讲变量名作为字符串输出。

  • php向mysql插入数据时的变量解析问题详解

说完了echo语句单双引号的变量解析问题现在我们来说说php向mysql插入数据时的变量解析问题。
我们都知道,在mysql中使用sql语句例如查询语句时,凡是遇到非int型的字段都要用单引号引起来,比如:select*from tablename where stu_name=’张三’;同样的,我们在php代码中想查询数据库数据时非int型的变量也要用单引号引起来,例如:
这里写图片描述
看到这里也许有人就会有疑问了,因为我们上一个知识点里面提到了,单引号不能解析变量,这段代码这样写合理吗?答案是合理,在echo语句中单引号不能产生变量作用是众所周知的,这毋庸置疑,但是在php生成sql语句时,普通的非整型变量是可以直接放在单引号中的(博主认为,这里的单引号是sql中的单引号,而非php中的单引号,意义不同不能同日而语),所以说这种写法是没问题的。
但是如果在使用php操作数据库时要匹配的是一个数组变量,不管字段是否为整型,代码都必须为如下写法:
这里写图片描述
否则程序会报错。
这种处理方式有两种解释:
第一:单引号不能解析出数组变量,所以必须先用双引号将其解析出来,再用单引号引起来。(但是字符串连接符的存在就无法接受)
第二:单引号不能解析出数组变量,所以分别将变量前面的所有sql语句和变量后面的所有sql语句用双引号引起来,再将这三部分用连接符连起来赋值给$query。(博主更倾向于这种解释)
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Jeaforea/article/details/53188087

Win2000中用户自定义IP头的实现及OicqSend完整实例源程序

Win2000中用户自定义IP头的实现及OicqSend完整实例源程序by孤独剑客E-mail: janker@371.net HomePage: http://janker.126.com一、引子 ...
  • yagami
  • yagami
  • 2000-09-06 23:26:00
  • 880

php学习笔记 -- 关于连接符与单双引号

php连接符中逗号与点号的区别 点号是将字符串拼接后再输出 逗号是将字符串依次输出 逗号省去了拼接步骤,所以使用逗号性能更好 echo '1+5=' . 1+5; //输出6 echo ...
  • whd526
  • whd526
  • 2017-01-28 21:56:21
  • 650

php插入单引号到数据库报错

怎么将单引号“”前面加上一个反斜杠 保证输入数据库的时候不会报错 1.php.ini文件中magic-quotes-gpc指示是否为允许,改成On;2.在插入数据库前替代字符串中的单引号  $msna...
  • yangjiehuan
  • yangjiehuan
  • 2008-03-28 12:23:00
  • 5878

php中单引号双引号那点事---顺便说说把php变量的值传给js

与C语言相比, php的语法真是太自由了, 在php中, 认为'good'和"good"是一个东东, 这让学C语言的人何以堪啊。          下面看看php的单双引号吧: ...
  • stpeace
  • stpeace
  • 2016-02-22 21:29:57
  • 4764

PHP的单引号里不能包含变量

PHP的单引号里不能包含变量; 更换下面输出方式:echo ' alert("文件上传失败!\n\n错误原因:'.$chk_sql.'")';...
  • u014134886
  • u014134886
  • 2015-11-23 00:14:11
  • 417

php双引号中的变量, 踩坑了啊

看看如下代码:
  • stpeace
  • stpeace
  • 2016-12-08 00:15:02
  • 4811

php中使用sql语句的引号问题

最近在php使用sql语句,发现双引号单引号的使用很是费解,要整理下。拿插入语句为例,向一个表名为login的表中增加一条用户信息,表中的字段是user和password。下面几种方式效果都是一样的第...
  • pony_maggie
  • pony_maggie
  • 2016-09-02 14:20:00
  • 1799

php提交表单内容有单引号,mysql执行时遇见错误的解决方法。

php提交表单内容有单引号,mysql执行时遇见错误的解决方法。
  • yanlintao1
  • yanlintao1
  • 2014-10-24 15:04:57
  • 1818

php中mysql语句中如果有变量,该如何连接字符串

举例: $query="UPDATE wf_aff_bak SET Account = '$account' WHERE Id = '$id'"; mysql_query($query); 只需...
  • daijiguo
  • daijiguo
  • 2015-07-22 09:44:40
  • 1866

PHP引号转义中解决POST,GET,Mysql数据自动转义问题

在处理mysql和GET、POST的数据时,常常要对数据的引号进行转义操作。 PHP中有三个设置可以实现自动对’(单引号),”(双引号),\(反斜线)和 NULL 字符转转。 PHP称之为魔术引号...
  • sunchenzl
  • sunchenzl
  • 2015-08-19 13:56:01
  • 273
收藏助手
不良信息举报
您举报文章:php单双引号对变量解析的影响以及php向mysql插入数据时的变量解析问题详解
举报原因:
原因补充:

(最多只允许输入30个字)