这就要从双引号和单引号的作用讲起:
双引号里面的字段会经过编译器解释然后再当作HTML代码输出,但是单引号里面的不需要解释,直接输出。例如:
$abc='I love u';
echo $abc //结果是:I love u
echo '$abc' //结果是:$abc
echo "$abc" //结果是:I love u
所以在对数据库里面的SQL语句赋值的时候也要用在双引号里面SQL="select a,b,c from ..."
但是SQL语句中会有单引号把字段名引出来
例如:select * from table where user='abc';
这里的SQL语句可以直接写成SQL="select * from table where user='abc'"
但是如果象下面:
$user='abc';
SQL1="select * from table where user=' ".$user." ' ";对比一下
SQL2="select * from table where user=' abc ' "
我把单引号和双引号之间多加了点空格,希望你能看的清楚一点。
也就是把'abc' 替换为 '".$user."'都是在一个单引号里面的。只是把整个SQL字符串分割了。
SQL1可以分解为以下3个部分
1:"select * from table where user=' "
2:$user
3:" ' "
字符串之间用 . 来连接,这样能明白了吧。
一个SQL查询语句用双引号括起来,里面的SQL语句中的字符变量用单引号括起来。
例:$query = "select * from cdb_members where username='$user_name'";
$result = @mysql_query($query) or die("查询失败!");
$num = mysql_num_rows($result);
$row = mysql_fetch_array($result);
一个SQL查询语句用双引号括起来,里面的SQL语句中的字符变量用单引号括起来。
使用WHERE子句指定查询范围时,在WHERE子句的字符串中,要使用单引号做定界符。
ANSI/ISO标准规定字符数据的SQL常量要包含在单引号(')内。如果在常量文本中包含一个单引号,则在这个常量内他要写作两个连续的单引号。
例如:Adodc1.RecordSource="select *from rkd where rkd.商品名称 like '包子'"
sql语句如下:
"select * from mysql where host='".$host."'"。
一般来说是用单引号表示的是该字段是非数值,但是在mysql里数值型的也可以用单引号如:
"select * from mysql where id='".$id."'"。
php变量:
如果定义了一个变量$values=120
你可以把该变量这样付值给$values1=$values
也可以这样付值给$values1="$values"
$values1的值都是一样的120,因为$values表示values是一个变量而不是字符串。