ฉันกำลังบันทึกสตริง json ในฐานข้อมูลซึ่งดูเหมือนว่าจะจัดเก็บอย่างถูกต้องใน SQL Server แต่เมื่อพยายามดึงข้อมูลจะส่งคืนเพียงส่วนหนึ่งของสตริง json เท่านั้น
ฉันใช้ PDO และ json_encode เพื่อบันทึกข้อมูล สตริง json ที่เก็บไว้มีความยาวประมาณ 1,000 อักขระ และฟิลด์ตารางอนุญาตให้มีความยาวได้ 4,096 ตัว
กำลังดึงผลลัพธ์:
$sql = "SELECT TOP 1 * FROM MyTable WHERE id = :id ORDER BY id DESC;";
$params = array(
":id" => $id
);
$sth = $this->db->prepare($sql);
$sth->execute($params);
$result = $sth->fetch(PDO::FETCH_ASSOC);
การบันทึกผลลัพธ์:
$json = json_encode($_POST);
$sql = "INSERT INTO MyTable(data) VALUES (:data);";
$params = array(
":data" => $data
);
$stmt = $this->db->prepare($sql);
$stmt->execute($params);
ตัวอย่าง Json ที่เก็บไว้ใน SQL Server:
{
"checkbox_1":"on",
"checkbox_2":"on",
"checkbox_3":"on",
"text_1":"my text",
"images":[
13685
],
"date":"11-11-2015"
}
ตัวอย่าง Json ที่ส่งคืน:
{
"checkbox_1":"on",
"checkbox_2":"on",
"checkbox_3":"on",
"text_1
อัปเดต
ดูเหมือนว่าความยาวของสตริงที่ส่งคืนจะเป็นเสมอ: 255
นี่อาจเป็นการกำหนดค่า SQL Server หรืออาจเป็น PDO
echo strlen($json);
- person Steve   schedule 11.11.2015VARCHAR
เป็นประเภทหรือไม่ - person Jake Bathman   schedule 11.11.2015utf8_encode()
ก่อนที่จะใช้json_encode()
แต่ฉันยังไม่มีโชค - person iswinky   schedule 12.11.2015