gpt4 book ai didi

php - 特殊字符插入数据库

转载 作者:行者123 更新时间:2023-11-29 21:49:48 25 4
gpt4 key购买 nike

我在将特殊字符插入数据库时​​遇到问题。例如,如果字符串是“\kdjfg*&(^^&%%//”“dfkjs/Z?!”,那么“\kdjfg*”将被插入到表中。我不确定为什么当存在特殊字符时整个字符串没有被插入

swift :

let post:NSString = "a=\(a)&b=\(b)&c=\(c)&d=\(d)&username=\(username)";
let url:NSURL = NSURL(string:PassURL)!
let postData = post.dataUsingEncoding(NSUTF8StringEncoding)!

let postLength = String(postData.length)
//Setting up `request` is similar to using NSURLConnection
let request = NSMutableURLRequest(URL: url)
request.HTTPMethod = "POST"
request.HTTPBody = postData
request.setValue(postLength, forHTTPHeaderField: "Content-Length")
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.setValue("application/json", forHTTPHeaderField: "Accept")


let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request) {urlData, response, reponseError in

if let receivedData = urlData {
let res = response as! NSHTTPURLResponse!;

NSLog("Response code: %ld", res.statusCode);

if (res.statusCode >= 200 && res.statusCode < 300) {
do {
let jsonData = try NSJSONSerialization.JSONObjectWithData(receivedData, options: []) as! NSDictionary
//On success, invoke `completion` with passing jsonData.
completion(jsonData: jsonData, error: nil)
} catch {
//On error, invoke `completion` with NSError.
completion(jsonData: nil, error: nil)
} }
else
{
completion(jsonData: nil, error: nil)
}
}
}
task.resume()
}

php:

header('Content-type: application/json');
if($_POST) {
$username = $_POST['username'];
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];
$d = $_POST['d'];
$mysqli = new mysqli($server_url, $db_user, $db_password, $db_name);

/* check connection */
if (mysqli_connect_errno()) {
error_log("Connect failed: " . mysqli_connect_error());
echo '{"success":0,"error_message":"' . mysqli_connect_error() . '"}';
} else {

$stmt = $mysqli->prepare("insert into testTable (a,b,c,d,postedby) VALUES (?,?,?,?,?)");
$stmt->bind_param("sssss",$a,$b,$c,$d,$username);
$stmt->execute();
$success = $stmt->affected_rows;
$id = $stmt->insert_id;

最佳答案

我不确定这是否是处理特殊字符的正确方法,但这就是我越过目标线的方法。

我使用以下方法在 iOS 中填充了特殊字符:

a.stringByReplacingOccurrencesOfString("&", withString: "(*)*#@#@$#")

然后在 php 方面,我将 ()#@#@$# 替换为 &

$newString = str_replace("(*)*#@#@$#","&",$a);

我希望其他人将来可以提供更好的方法

关于php - 特殊字符插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33759391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com