在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

mysql语句怎样插入含单引号或反斜杠的值

150次阅读
没有评论

共计 2082 个字符,预计需要花费 6 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章给大家分享的是有关 mysql 语句怎样插入含单引号或反斜杠的值的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

前言

比如说有个表,它的结构是这个样子的

CREATE TABLE `activity` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT  ID ,
 `title` varchar(255) NOT NULL COMMENT  活动标题 ,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT= 活动表 

比如说往里面插入记录,示例代码如下:

$servername =  xxxxservername 
$port = 3306;
$username =  xxxusername 
$password =  xxxpwd 
$dbname =  xxxxxxdb 
//  创建连接
$conn = new mysqli($servername, $username, $password, $dbname, 8306);
//  检测连接
if ($conn- connect_error) { die( connect failed:   . $conn- connect_error);
$item[title] =  happy new year! 
$sql = sprintf(INSERT INTO activity (title) VALUES (  %s , $item[ title 
var_dump($sql);
if ($conn- query($sql) === TRUE) {echo  insert success\n} else {
 echo  insert failed:  . $conn- error;
$conn- close();

这一段代码执行 OK,没啥问题。但是如果代码里面的 title 变成 happy valentine s day! 就会报如下错误,提示你有语法错误:

insert failed:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near s day! ) at line

因为 INSERT INTO activity (title) VALUES (happy valentine s day! 这个 sql 语句里面单引号不是成对的。

有时候会往数据库里面插入一些用户给的数据,很可能会出现上面这种情况,那么该如何避免呢?

要对 sql 里面的特殊字符进行转义。可以把 $sql 的那一行代码改成如下这样:

$sql = sprintf(INSERT INTO activity (title) VALUES (  %s , mysqli_real_escape_string($conn, $item[ title]));

整个 sql 字符串实际上是这样的:

INSERT INTO activity (title) VALUES (  happy valentine\ s day!

有时候还会出现一种问题: json_encode 之后,里面的中文被转成 unicode 码,插入到 mysql 里面发现 \ 被吃掉了。

比如说中文这两个字的 unicode 码是 \u4e2d\u6587,但是有时候插到数据库里反斜杠被吃掉了变成了 u4e2du6587

看如下示例代码:

$item[title] = json_encode([
  balbalbla  =   中文 
$sql = sprintf(INSERT INTO activity (title) VALUES (  %s , $item[ title

整个 sql 字符串实际上是这样的:

INSERT INTO activity (title) VALUES (  { balbalbla : \u4e2d\u6587}

插入到数据库里面,title 这个字段的值就变成了 {balbalbla : u4e2du6587}。

那是因为这里的 \ 被当成转义符了,实际上要对 unicode 码的 \ 再次转义,这样插入数据库的才是对的

$item[title] = json_encode([
  balbalbla  =   中文 
$sql = sprintf(INSERT INTO activity (title) VALUES (  %s , mysqli_real_escape_string($conn, $item[ title]));

整个 sql 字符串实际上是这样的:

INSERT INTO activity (title) VALUES (  {\ balbalbla\ :\ \\u4e2d\\u6587\}

感谢各位的阅读!关于“mysql 语句怎样插入含单引号或反斜杠的值”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计2082字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 四虎在线观看免费视频 | 在线看一区二区 | 久久久久国产精品无码免费看 | 亚洲综合激情五月色播 | 亚洲av日韩av永久无码色欲 | 精品国产综合区久久久久99 | 国产精品免费视频一区二区三区 | 成人男女网18免费网站 | 亚洲精品久久久久网站 | 欧美国产一区二区二区 | 亚洲一级香蕉视频 | 日本成a人片在线播放 | 青青热久久国产久精品 | 欧美亚洲啪啪 | 性做久久久久免费看 | 精品国产免费一区二区 | 玩弄人妻少妇500系列视频 | 一二三四在线视频社区3 | 久久久青草青青亚洲国产免观 | 青草草在线视频永久免费 | 97se亚洲国产综合自在线观看 | 日本一本高清视频 | 男女做性无遮挡免费视频 | 97中文在线| 久久精品99毛片免费 | 久久国产精品日本波多野结衣 | 亚洲欧美成人中文在线网站 | 国内精品国语自产拍在线观看91 | 狠狠色噜噜狠狠狠狠97首创麻豆 | 青青视频国产在线播放 | 日日草草 | 欧美亚洲日韩国产人成在线播放 | 免费观看成人鲁鲁鲁鲁鲁视频 | 精品国产高清在线看国产 | 久久精品国产亚洲av无码麻豆 | 日本一区毛片免费观看 | 欧美精品专区免费观看 | 日韩精品乱码av一区二区 | 日本老熟妇50岁丰满 | 2021精品国内一区视频自线 | 国产玖玖在线 |