php提交表单内容有单引号,mysql执行时遇见错误的解决方法。
时间:2022-03-14 01:30
首先看一下问题所在。
"INSERT INTO tg_article(
tg_username,
tg_type,
tg_title,
tg_content,
tg_date
)
VALUES(
‘{$_clean[‘username‘]}‘,
‘{$_clean[‘type‘]}‘,
‘{$_clean[‘title‘]}‘,
‘{$_clean[‘content‘]}‘,
NOW()
)
"
大家会发现党要提交的内容还有单引号的时候,value是里面就会出现单引号套单引号,这是明显的错误,这也是在网站开发中经常遇到的现象和易忽略的问题。接下来给大家讲怎么解决。
1. 对于magic_quotes_gpc=on的情况,
我们可以不对输入和输出数据库的字符串数据作
addslashes()和stripslashes()的操作,数据也会正常显示。
function _mysql_string($_string){
//get_magic_quotes_gpc()如果开启状态就不用转义,否则要z转义
// if(!GPC){
// return @mysql_escape_string($_string);
// }else{
//return $_string;
// }
if(GPC){
if(is_array($_string)){
foreach ($_string as $_key=>$_value){
$_string[$_key] = _mysql_string($_value);
$_string[$_key] = addslashes($_string[$_key]);
}
}else{
$_string = @mysql_real_escape_string($_string);
}
}
return $_string;
}
//接受内容 $_clean = array(); $_clean['username'] = $_COOKIE['username']; $_clean['type'] = $_POST['type']; $_clean['title'] = $_POST['title']; $_clean['content'] = $_POST['content']; _mysql_string($_clean);