作者acidjazz (...........)
看板PHP
标题[请益] 请教INSERT values的变数问题
时间Thu Jan 28 02:53:41 2016
最近开始学习php+mysql,碰到一个疑问
有一个简单的成绩输入例子查到有两种写法如下:
1.
mysql_query("INSERT INTO grade (name, eng) VALUES(
'$_POST[name]
',
'$_POST[eng]');");
第一个例子把POST的变数用两个 单引号
'包起来,
原本$_POST[
'name
']变成$_POST[name],请问为什麽要把里面的引号拿掉才能成功呢
我原本是写:VALUES('$_POST['name']','$_POST['eng']')
结果就是失败了,查了一下才改成这两种例子的方法
目前学到都是$_POST[
'xx
'] or $_POST[
"xx
"],拿掉里面引号的原因是什麽呢?
是因为一个值里面不能有两组单引号的关系吗
2.
mysql_query("INSERT INTO grade (name, eng) VALUES('".$_POST['name']."',
'".$_POST['eng']."');");
第二个例子保留原本变数的写法,但红色字是比较不解之处,
为什麽变数除了单引号包住之外,里面又要包一层双引号与连结符号呢?
我知道一般双引号与连接符号的功能,但放在这边的用途是什麽呢?
希望问题不会太笨,虽然知道写法,但不知道原因实在很难安心写下去orz
感激!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 175.182.180.216
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1453920825.A.39A.html
1F:→ xdraculax: 用双引号包作字串,里面单引号对php而言都是字,第二 01/28 07:40
2F:→ xdraculax: 例多个双引号是多个字串,用.连接,单引号是给sql用的 01/28 07:40
3F:→ xdraculax: 字串符号 01/28 07:40
4F:→ xdraculax: 第一例双引号字串内虽可直接嵌入变数,建议还是以{}包 01/28 07:46
5F:→ xdraculax: 住变数,未加单双引号会视为常数,有些环境未定义常数 01/28 07:46
6F:→ xdraculax: 会直接当字串,有些环境则会报错 01/28 07:46
7F:→ MOONRAKER: 写 ... VALUES ( '{$_POST['field']}' 就不会有问题了 01/28 11:07
8F:→ MOONRAKER: 第一个写法是错的 阵列项目还是字串 一样需要引号 01/28 11:08
9F:→ MOONRAKER: 不会错只是运气好。 01/28 11:09
10F:→ MOONRAKER: 第二个我称为整人 01/28 11:10
11F:→ acidjazz: 喔喔!所以第二例其实只是单纯的双引号字串+连结号+变数 01/29 02:50
12F:→ acidjazz: 是我会错意以为那边的双引号跟连结符号有成对的意义… 01/29 02:52
13F:→ acidjazz: 谢谢两位大大的说明!直接改M大的写法了,清楚很多 01/29 02:53