已有40人关注
请教关于单双引号问题
发表在PHP图书答疑 2015-01-28
是否精华
版块置顶:
问题是这样的:
像oracle 中sql ,如: select * from info where name ='刘亮';(字符串需要用单引号引住)

php中,给某变量赋值,代码如下:
$sql="select I* from info where name='变量名'";(此处单双引号,是我随意写的,请老师帮忙改正,谢谢)

那我这个单双引号都应该怎么加呢?
分享到:
精彩评论 4
轻鸿_mrkj
学分:0 LV1
TA的每日心情
加油
2020-12-25 20:06:49
2015-01-29
沙发
读者您好:
PHP中双引号和单引号的区别是:双引号会解析其内部的变量或者转义字符,而单引号是“所见即所得”,也就是我们给它什么就是什么。
比如:$str='明日科技'; echo "$str";就会输出 明日科技
而如果是$str='明日科技'; echo '$str';那么就会输出$str。
因此在PHP中想要输出带有变量和单引号的SQL语句,可以写为:
$name = '小明';
$sql = "select * from table where name='$name'";// 外层双引号,因为要解析后面的变量,里面的单引号原封不动的写。
这样的形式。

当然也可以这样写:
$name = '小明';
$sql = "select * from table where name='".$name."'"; 

侠骨仁心
学分:0 LV1
TA的每日心情
开心
2020-03-19 23:02:33
2015-01-29
板凳
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
读者您好:
PHP中双引号和单引号的区别是:双引号会解析其内部的变量或者转义字符,而单引号是“所见即所得”,也就是我们给它什么就是什么。
比如:$str='明日科技'; echo "$str";就会输出 明日科技
而如果是$str='明日科技'; echo '$str';那么就会输出$str。
因此在PHP中想要输出带有变量和单引号的SQL语句,可以写为:
$name = '小明';
$sql = "select * from table where name='$name'";// 外层双引号,因为要解析后面的变量,里面的单引号原封不动的写。
这样的形式。

当然也可以这样写:
$name = '小明';
$sql = "select * from table where name='".$name."'"; 


[/FIELDSET]

回复:

谢谢!感觉php的规范好灵活啊!还有些不适应。
  
侠骨仁心
学分:0 LV1
TA的每日心情
开心
2020-03-19 23:02:33
2015-01-29
地板
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
读者您好:
PHP中双引号和单引号的区别是:双引号会解析其内部的变量或者转义字符,而单引号是“所见即所得”,也就是我们给它什么就是什么。
比如:$str='明日科技'; echo "$str";就会输出 明日科技
而如果是$str='明日科技'; echo '$str';那么就会输出$str。
因此在PHP中想要输出带有变量和单引号的SQL语句,可以写为:
$name = '小明';
$sql = "select * from table where name='$name'";// 外层双引号,因为要解析后面的变量,里面的单引号原封不动的写。
这样的形式。

当然也可以这样写:
$name = '小明';
$sql = "select * from table where name='".$name."'"; 


[/FIELDSET]

回复:
  对了,还有一个问题。

 双引号与单引号之间,谁的优先级更高一些呢?

像《php自学视频教程》一书中,第514页中有一句代码:

$smarty->assign('op',$rst->GetMenu2("supid",",$blank=false,",'','class="txt"'));

注意最后面 'class="txt"' ,单引号包裹在双引号外面,这点应该怎么理解呢?
轻鸿_mrkj
学分:0 LV1
TA的每日心情
加油
2020-12-25 20:06:49
2015-01-30
4L
读者您好:
之前提到了,双引号会解析其内部的变量或者转义字符,需要做的工作比较多,因此单引号的效率是高于双引号的,如果是纯字符,考虑到效率,建议用单引号来引用。
至于您问的那句'class="txt"',它就是一个对普通字符的引用。
首页上一页 1 下一页尾页 4 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照