㈠ mysql+php程序中sql语句中的引号使用方法,什么时候用双引号什么时候用单引号
这就要从双引号和单引号的作用讲起:
双引号里面的字段会经过编译器解释然后再当作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:" ' "
字符串之间用 . 来连接,这样能明白了吧。
㈡ php操作MySQL中单引号与怎么处理
花括号,花括号中既可以输出简单变量,也可以输出复杂变量,如数组、对象等;
1.$a = 'abcd';2.$b = array('aaa' => 'abcd', 'bbb' => array(12,34));3.echo "{$a}"; // 输出 abcd4.echo "{$b['aaa']}"; // 输出 abcd5.echo "{$b['bbb'][1]}"; // 输出 34
所以写的时候想偷懒就用花括号,不会出错;
但是在性能上,单引号的性能最好,因为单引号中的内容会直接被当成字符串,没其他的解析;而解析双引号的时候,会先判断双引号内有没有变量,有变量就把变量用变量值代替,最后再输出双引号内整个的内容;花括号就更不用说了,可以输出复杂的变量内容。
㈢ php mysql转义特殊字符的函数有哪些
addslashes对SQL语句中的特殊字符进行转义操作,包括(‘), (“), (), (NUL)四个字符,此函数在DBMS没有自己的转义函数时候使用,但是如果DBMS有自己的转义函数,那么推荐使用原装函数,比如MySQL有mysql_real_escape_string函数用来转义SQL。 注意在PHP5.3之前,magic_quotes_gpc是默认开启的,其主要是在$GET, $POST, $COOKIE上执行addslashes操作,所以不需要在这些变量上重复调用addslashes,否则会double escaping的。不过magic_quotes_gpc在PHP5.3就已经被废弃,从PHP5.4开始就已经被移除了,如果使用PHP最新版本可以不用担心这个问题。stripslashes为addslashes的unescape函数。
㈣ php操作mysql数据库时,双引号单引号,花括号如何运用感觉有些混乱
单引号,单引号中的内容会被直接当成一个字符串,单引号中无法输出
变量值
;
$a = 'abcd';
echo '$a'; // 输出结果就是 $a,而不是 abcd
双引号
,双引号中可以输出简单变量,不能输出复杂变量,否则会报错;
$a = 'abcd';
$b = array('aaa' => 'abcd');
echo "$a"; // 输出 abcd,因为双引号中可以解析简单变量
echo "$b['aaa']"; // 直接报错,因为双引号中不能解析复杂变量
花括号,花括号中既可以输出简单变量,也可以输出复杂变量,如数组、对象等;
$a = 'abcd';
$b = array('aaa' => 'abcd', 'bbb' => array(12,34));
echo "{$a}"; // 输出 abcd
echo "{$b['aaa']}"; // 输出 abcd
echo "{$b['bbb'][1]}"; // 输出 34
所以写的时候想偷懒就用花括号,不会出错;
但是在性能上,单引号的性能最好,因为单引号中的内容会直接被当成字符串,没其他的解析;而解析双引号的时候,会先判断双引号内有没有变量,有变量就把变量用变量值代替,最后再输出双引号内整个的内容;花括号就更不用说了,可以输出复杂的变量内容。
所以一般如果项目没有性能要求的话或者
小项
目的话,随便怎么用没关系;但是大网站或者要求性能的网站就得视情况挑着用了
㈤ 用php把html代码存入mysql为什么需要转义
因为html中难免会出现单引号 或 双引号这种情况。
如果不去进行转义的话。插入的时候就会在引号位置截断,导致sql语句无法执行。
㈥ PHP中“\”怎么存进数据库
针对你拉追加问题:$mysql->insert_table("test1","name","'mm\\'");
这个只存进“mm",斜线“\”没有
这里是这样的,首先,\是PHP里的转义字符,使用两个\,即"\\",实际上相当于一个\字符;
然后再说一点,在数据库中,单引号'是数据库中的转义字符,所以,你这里应该写作:
$mysql->insert_table("test1","name","mm'\\");
㈦ php原样输出mysql内容
定义和用法
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。
预定义的字符是:
& (和号) 成为 &
" (双引号) 成为 "
' (单引号) 成为 '
< (小于) 成为 <
> (大于) 成为 >
http://www.w3school.com.cn/php/func_string_htmlspecialchars.asp
这个函数完全满足你的需求。
㈧ PHP如何去掉转义
string addslashes ( string str) 返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。
这些字符是单引号(\')、双引号(\")、反斜线(\\)与 NUL(NULL 字符) stripslashes作用相反在处理mysql和GET、POST的数据时,常常要对数据的引号进行转义操作。 PHP中有三个设置可以实现自动对’(单引号),”(双引号),\\(反斜线)和 NULL 字符转移。 PHP称之为魔术引号,这三项设置分别是 magic_quotes_gpc 影响到 HTTP 请求数据(GET,POST 和 COOKIE)。
不能在运行时改变。在 PHP 中默认值为 on。 magic_quotes_runtime 如果打开的话,大部份从外部来源取得数据并返回的函数,包括从数据库和文本文件,所返回的数据都会被反斜线转义。该选项可在运行的时改变,在 PHP 中的默认值为 off。 magic_quotes_sybase 如果打开的话,将会使用单引号对单引号进行转义而非反斜线。
此选项会完全覆盖 magic_quotes_gpc。如果同时打开两个选项的话,单引号将会被转义成 ”。而双引号、反斜线 和 NULL 字符将不会进行转义。
虽然方便的实现了对特殊符号的自动转义,但是这样会使得程序效率降低,并导致程序可移植变得麻烦。在不知道服务器ini设置的情况下,还需要调用get_magic_quotes_gpc() ,get_magic_quotes_runtime() 或ini_get()来检测状态。使用stripslashes去掉转义