您的位置:首页 > 博客中心 > 数据库 >

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);



热门排行

今日推荐

热门手游