发布网友 发布时间: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' ";