最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql語句如何插入含單引號或反斜杠的值詳解

 更新時間:2019年02月20日 08:22:55   作者:nemo  
這篇文章主要給大家介紹了關于mysql語句如何插入含單引號或反斜杠的值的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

本文主要給大家介紹了關于mysql語句插入含單引號或反斜杠值的相關內容,下面話不多說了,來一起看看詳細的介紹吧

比如說有個表,它的結構是這個樣子的

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

// 創(chuàng)建連接
$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(); 

這一段代碼執(zhí)行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語句里面單引號不是成對的。

有時候會往數(shù)據(jù)庫里面插入一些用戶給的數(shù)據(jù),很可能會出現(xiàn)上面這種情況,那么該如何避免呢?

要對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!');"

有時候還會出現(xiàn)一種問題: json_encode之后,里面的中文被轉成unicode碼,插入到mysql里面發(fā)現(xiàn)\被吃掉了。

比如說中文這兩個字的unicode碼是\u4e2d\u6587,但是有時候插到數(shù)據(jù)庫里反斜杠被吃掉了變成了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"}');

插入到數(shù)據(jù)庫里面,title這個字段的值就變成了{"balbalbla":"u4e2du6587"} 。

那是因為這里的\被當成轉義符了,實際上要對unicode碼的\再次轉義,這樣插入數(shù)據(jù)庫的才是對的

$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不走索引的幾個問題小結

    mysql不走索引的幾個問題小結

    MySQL中不走索引的問題通常發(fā)生在查詢中使用了函數(shù),這會使索引失效,從而影響查詢性能,本文就介紹了mysql不走索引的幾個問題小結,感興趣的可以了解一下
    2023-08-08
  • MySql安裝與使用圖文教程【推薦】

    MySql安裝與使用圖文教程【推薦】

    mysql是一種關聯(lián)數(shù)據(jù)庫管理系統(tǒng),在程序開發(fā)中應用非常廣泛,下面通過本文給大家介紹mysql安裝與使用教程,感興趣的朋友一起學習吧
    2016-05-05
  • MySQL實戰(zhàn)文章(非常全的基礎入門類教程)

    MySQL實戰(zhàn)文章(非常全的基礎入門類教程)

    半個月時間把MySQL重新鞏固了一遍,梳理了一篇幾萬字超硬核文章,想學習mysql的朋友可以看看
    2023-05-05
  • MySQL 使用開源審計插件示例詳解

    MySQL 使用開源審計插件示例詳解

    審計插件是包含在 MariaDB 中的,所以需要先下載 MariaDB 然后將 server_audit.so 審計插件 copy 出來,這篇文章主要介紹了MySQL 使用開源審計插件,需要的朋友可以參考下
    2023-08-08
  • Mysql中 unique列插入重復值該怎么解決呢

    Mysql中 unique列插入重復值該怎么解決呢

    本文給大家介紹mysql中unique列插入重復值的解決方案,主要基于mysql平臺,通過這些,可以做到一些新的功能和應用。特此把本文本文分享給廣大開發(fā)人員
    2015-11-11
  • 詳解MySQL客戶端/服務器運行架構

    詳解MySQL客戶端/服務器運行架構

    這篇文章主要介紹了詳解MySQL客戶端/服務器運行架構,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • MySQL 撤銷日志與重做日志(Undo Log與Redo Log)相關總結

    MySQL 撤銷日志與重做日志(Undo Log與Redo Log)相關總結

    這篇文章主要介紹了MySQL 撤銷日志與重做日志(Undo Log與Redo Log)相關總結,幫助大家更好的理解和學習使用MySQL,感興趣的朋友可以了解下
    2021-03-03
  • mysql(5.6及以下)解析json的方法實例詳解

    mysql(5.6及以下)解析json的方法實例詳解

    這篇文章主要介紹了mysql(5.6及以下)解析json的方法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-07-07
  • 與MSSQL對比學習MYSQL的心得(四)--BLOB數(shù)據(jù)類型

    與MSSQL對比學習MYSQL的心得(四)--BLOB數(shù)據(jù)類型

    在MYSQL中BLOB是一個二進制大對象,用來儲存可變數(shù)量的數(shù)據(jù),而MSSQL中并沒有BLOB數(shù)據(jù)類型,只有大型對象數(shù)據(jù)類型(LOB)
    2014-06-06
  • MySql新手入門的基本操作匯總

    MySql新手入門的基本操作匯總

    MySQL是目前來說最好的 RDBMS應用軟件之一,這篇文章主要給大家介紹了關于MySql基本操作的相關資料,非常適合mysql新手入門,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05

最新評論

黔江区| 即墨市| 黑龙江省| 汝州市| 陈巴尔虎旗| 金沙县| 天气| 莱阳市| 黑龙江省| 霍林郭勒市| 宁国市| 新兴县| 林芝县| 武川县| 日土县| 西昌市| 哈巴河县| 阿拉尔市| 黄山市| 高安市| 且末县| 财经| 新河县| 井陉县| 清涧县| 茌平县| 石狮市| 呼图壁县| 巩义市| 威海市| 罗田县| 昌吉市| 永安市| 外汇| 高密市| 咸阳市| 隆安县| 南宫市| 淳安县| 抚宁县| 福安市|