作者wawawa (哇哇哇○( ̄﹏ ̄)○)
看板PHP
标题Re: [心得] PHP里单引号('')跟双引号("")的差别
时间Thu Mar 2 17:02:09 2006
※ 引述《ottokang (猫猫的大玩偶)》之铭言:
: ※ 引述《sonicjr (平凡中的不平凡)》之铭言:
: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
: 如果你的软体有好用的高亮度编辑 就可以把.去掉
: $sql = "select * from member where name = '$name' and pw = '$pw'";
: 我的感觉是这样比较清楚 比较不会被一堆.搞混 当然这个喜好随个人
: 另外我手上有一本书说使用单引号速度会比较快 因为不用检查字串是否为变数
: 例如可以用单引号包的纯字串 : '我是字串' 就不要用双引号: "我是字串"
: 但是我的感觉好像是没有差别>.< 也没有看过手册有写这种建议
: 不知道有没有强者有找到相关的资料?
我在一开始学的时候也是使用ottokang大的用法
可是写到後来某一天吃了疑似型别转换的闷亏(当时在赶进度,所以没时间check)
所以後来我都是用
$str = sprintf("select * form xxx where name='%s'", $username);
这样子其实可以更清楚,而且型别也很明确,给各位作参考。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.16.1.95
※ 编辑: wawawa 来自: 163.16.1.95 (03/02 17:02)
1F:推 grassboy2:很推这招!不过这招的效率会有浪费吗?好奇… 03/02 17:05
2F:推 ileadu:我听某此高手也说要这样用耶 真神奇... 03/02 17:10
3F:→ ileadu: 些 03/02 17:11
4F:推 ottokang:好方法! 03/02 17:19
5F:推 andreli:这种做法跟Dreamweaver的一样,补充一下。 03/02 18:00
6F:推 fillano:型别明确有一个好处,是减少sql injection攻击的机会 03/02 23:10
7F:推 fillano:因为通常id是整数,如果不检查型别,让字串可以代替id 03/02 23:13
8F:→ fillano:用'0 UNION x,y,z....'代替,这样无论如何都会有result喔 03/02 23:14
9F:推 wawawa:sql injection php预设免疫:p magic quotes的副作用:ppp 03/03 00:43
10F:推 ails:为何不用 PEAR:DB 然後用bind就好了 03/04 12:57
11F:推 wawawa:若不打算跨资料库...不需要动用到PEAR::DB/Adodb吧 03/06 16:08