我有一個 MySQL 列,其中的資料如下所示,

我需要JSON通過convert(somecolumn,JSON). 但是,似乎我首先需要洗掉轉義符號(例如,\")。我做了一些搜索,發現mysql_real_escape_string可以完成這項作業(來自這個問題)。
但如果我理解正確,mysql_real_escape_string是一個 PHP 命令。是否有任何本機 MySQL 命令可以執行與mysql_real_escape_string(類似 convert(mysql_native_function(somecolumn),JSON))類似的操作?
任何幫助表示贊賞!
uj5u.com熱心網友回復:
在MySQL的圖書館是老..如果你真的需要使用類似的東西-使用的mysqli
該mysql_real_escape_string不一樣安全,你會覺得它是,看到這一點:https://security.stackexchange.com/questions/8028/does-mysql-escape-string-have-any-security-vulnerabilities-if-all -tables-using-l
也就是說,不使用它們中的任何一個,而是使用 Php PDO 并替換以下內容,情況會好得多:
$data = [
'name' => $name,
'surname' => $surname,
'sex' => $sex,
];
$sql = "INSERT INTO users (name, surname, sex) VALUES (:name, :surname, :sex)";
$stmt= $pdo->prepare($sql);
$stmt->execute($data);
它將為您解決“逃避”問題。
更多例子在這里:https : //phpdelusions.net/pdo_examples/insert
uj5u.com熱心網友回復:
使用替換。對于更難的事情 REGEXP_REPLACE。
SELECT REPLACE(somecolumn, '\"', '"')
SELECT REGEXP_REPLACE('"..."', '(^"|"$)', '')
后者將取消參考整個字串,就像^開頭和$結尾一樣。
順便說一句,我實際上會更正表中的所有資料一次。(備份后。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/362719.html
上一篇:在php中格式化整數或字串
下一篇:回傳匹配數字位置的函式
