Seperti yang ditunjukkan dalam tajuk: Pada masa ini disahkan bahawa rentetan yang diperoleh ditukar kepada pengekodan unikod dan disimpan dalam jadual Pengekodan jadual ialah utf-8 ialah: jika fungsi json_encode(). digunakan untuk melarikan diri beberapa kali dan kemudian disimpan Rentetan dalam pangkalan data mempunyai beberapa lapisan tanda petikan berganda. diikuti dengan kod kunci. Orang baru boleh berunding tentang cara yang betul untuk menyimpan; p>
< /p>
Kod kunci:
function weixininfo($code){
$userinfo = getJson($get_user_info_url);
$wxif = new wxinfo($userinfo["openid"],$userinfo["nickname"],$userinfo["sex"],$userinfo["headimgurl"]);
kelas Emp {};
$obj = new Emp();
$obj->hasil = 0;
$obj->maklumat = $wxif;
pulangkan $obj;
}
$kod = $_GET['kod'];
$data = weixininfo($kod);
$info = $data->info;
$openid = $info->openid;
$nama panggilan = $info->nama panggilan;
$nama = json_encode($nama panggilan);
$seks = $info->seks;
$headurl = $info->headurl;
$sqls = "INSERT INTO mytest(openid,nickname,sex,headurl) NILAI ('$openid',$name,'$sex','$headurl')";
if($conn->query($sqls) === true){
session_start();
$_SESSION["openid"]=$openid;
$conn->close();
// $uri ="./index.php";
// header( "Lokasi: $uri" );
}lain{
echo "Gagal:".$sqls."<br>".$conn->error;
};
function getJson($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return json_decode($output, true);
}
kelas wxinfo {
awam $openid;
nama panggilan awam;
awam $seks;
awam $headurl;
fungsi awam __construct($openid,$nama samaran,$seks,$headurl){
$this->openid = $openid;
$ini->nama panggilan = $nama panggilan;
$ini->seks = $seks;
$this->headurl = $headurl;
}
}
medan mysql ditetapkan kepada
utf8mb4
-utf8mb4-general_ci
php
Jika jadual menyokong utf8mb4, tukar kepada utf8mb4 Jika ia tidak berguna, gunakan utf32 hanya menyokong sebilangan kecil ekspresi emoji
Sebelum membuat pertanyaan, jalankan $conn->query("set names utf8") untuk memastikan proses penghantaran data tidak bercelaruutf-8 menggunakan 3 bait untuk storan, manakala aksara emoji mempunyai 4 bait, jadi menukar utf-8 kepada utf8mb4 akan menyelesaikannya
Juga ambil perhatian: versi mysql mestilah v5.5.3 atau lebih tinggi