php *** 作MySQL中单引号与怎么处理?

php *** 作MySQL中单引号与怎么处理?,第1张

括号,花括号中既可以输出简单变量,也可以输出复杂变量,如数组、对象等;

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

所以写的时候想偷懒就用花括号,不会出错;

但是在性能上,单引号的性能最好,因为单引号中的内容会直接被当成字符串,没其他的解析;而解析双引号的时候,会先判断双引号内有没有变量,有变量就把变量用变量值代替,最后再输出双引号内整个的内容;花括号就更不用说了,可以输出复杂的变量内容。

单引号,单引号中的内容会被直接当成一个字符串,单引号中无法输出变量值;

$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

所以写的时候想偷懒就用花括号,不会出错;

但是在性能上,单引号的性能最好,因为单引号中的内容会直接被当成字符串,没其他的解析;而解析双引号的时候,会先判断双引号内有没有变量,有变量就把变量用变量值代替,最后再输出双引号内整个的内容;花括号就更不用说了,可以输出复杂的变量内容。

所以一般如果项目没有性能要求的话或者小项目的话,随便怎么用没关系;但是大网站或者要求性能的网站就得视情况挑着用了

针对你拉追加问题:$mysql->insert_table("test1","name","'mm\\'")

这个只存进“mm",斜线“\”没有

这里是这样的,首先,\是PHP里的转义字符,使用两个\,即"\\",实际上相当于一个\字符;

然后再说一点,在数据库中,单引号'是数据库中的转义字符,所以,你这里应该写作:

$mysql->insert_table("test1","name","mm'\\")


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9952664.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存