主页 M

php sqlite insert into 插入内容带双引号,单引号

2020-04-01 网页编程网 网页编程网

1.网页上编辑包含单引号,用php直接插入sqlite会insert出错。

可以使用sqlite_escape_string(输入值); //此项会把单引号替换成\' 插入数据库

在网页展示时使用str_replace("\'", "'", $entry['a']);将\'转换成单引号来展现。

2.插入内容带双引号,单引号时,用函数。

$text1=escape_string(text1);
$text2=escape_string(text2);
insert into MINGYAN (Content1,Content2,Content3,View) VALUES ('$text1','$text2','$time',0);
function escape_string($string, $quotestyle='both') {
    if( function_exists('sqlite_escape_string') ){
        $string = sqlite_escape_string($string);
        $string = str_replace("''","'",$string); #- no quote escaped so will work like with no sqlite_escape_string available
    }
    else{
        $escapes = array("\x00", "\x0a", "\x0d", "\x1a", "\x09","\\");
        $replace = array('\0',   '\n',    '\r',   '\Z' , '\t',  "\\\\");
    }
    switch(strtolower($quotestyle)){
        case 'double':
        case 'd':
        case '"':
            $escapes[] = '"';
            $replace[] = '\"';
            break;
        case 'single':
        case 's':
        case "'":
            $escapes[] = "'";
            $replace[] = "''";
            break;
        case 'both':
        case 'b':
        case '"\'':
        case '\'"':
            $escapes[] = '"';
            $replace[] = '\"';
            $escapes[] = "'";
            $replace[] = "''";
            break;
    }
    return str_replace($escapes,$replace,$string);
} 

3.在网页input编辑框中输入的回车换行符,在网页显示的时候不显示回车。

解决:使用<pre></pre>,可以保留回车和空格,但是会撑开表单。

使用<pre class='edit_class' style='white-space: pre-wrap;word-break:break-all;'></pre>

其中 style设置了pre里的内容会自动换行;class='edit_class' 设置了pre里的字体格式和大小按edit_class展示。

阅读原文
阅读 3857
123 显示电脑版