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

发布网友 发布时间:2022-04-06 02:55

我来回答

5个回答

懂视网 时间:2022-04-06 07:16

php访问mysql数据转义特殊字符的方法:1、利用mysql库函数,代码为【mysql_escape_string( string $unescaped_string ) : string】;2、利用转义函数addslashes。

【相关学习推荐:php编程(视频)】

php访问mysql数据转义特殊字符的方法:

方法一:利用mysql库函数

PHP版本在7.0之前:

mysql_escape_string ( string $unescaped_string ) : string

PHP版本在7.0之后:

mysqli_real_escape_string ( mysqli $link , string $escapestr ) : string

方法二:利用转义函数addslashes()

适合版本PHP4、PHP5、PHP7

addslashes ( string $str ) : string

PHP 5.4 之前 PHP 指令 magic_quotes_gpc 默认是 on, 实际上所有的 GET、POST 和 COOKIE 数据都用被 addslashes() 了。 不要对已经被magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。

遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。即get_magic_quotes_gpc()返回false时,再使用addslashes()进行特殊字符转义。示例如下:

function myaddslashes($data)
{
 if(false == get_magic_quotes_gpc())
 {
 return addslashes($data);//未启用魔术引用时,转义特殊字符
 }
 return $data;
}

想了解更多编程学习,敬请关注php培训栏目!

热心网友 时间:2022-04-06 04:24

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

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

热心网友 时间:2022-04-06 05:42

我平时写SQL语句都是用?占位符,然后在执行过程中匹配变量来传递数据,不容易出错。比如下面的代码:
$conn=new PDO("sqlite:webdata.db");
$a=$conn->prepare("select * from webusers where uname=? and npwd=?");
$a->execute(array('lxz2005','123456'));
$res=$a->fetchAll();
print_r($res);追问出来了

追答我平时写SQL语句都是用?占位符,然后在执行过程中匹配变量来传递数据,不容易出错

热心网友 时间:2022-04-06 07:17

转义啊,加反斜杠就行了。
或者你可以外面用双引号
里面就不用管了

热心网友 时间:2022-04-06 09:08

3个回答都搞得那么复杂干什么,最简单的方法就是把$sql='内容'的外面的单引号改成双引号"",然后你里面的sql语句就用单引号',这样就不会冲突,$sql="select * from test where name ='test' ";

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com