小编Gwe*_*mid的帖子

pdo 并插入编码到 json 字段的 json

我正在遵循本指南... mysqltutorial.org/mysql-json

……我决定用 PDO 尝试这些概念……但我一定在某处丢失了一些东西。

这完美地工作:

$db = new PDO ("mysql:host=$hostname;dbname=$dbname", $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$array=array(1=>array(2=>'kkk',3=>'pizza'));
$json= json_encode($array); 

$db->query("INSERT INTO test(config) VALUES('".$json."');");
Run Code Online (Sandbox Code Playgroud)

但这不会:

$db = new PDO ("mysql:host=$hostname;dbname=$dbname", $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$array=array(1=>array(2=>'kkk',3=>'pizza'));
$json= json_encode($array); 

$sql = "INSERT INTO test (config) VALUES(':config');";
$stmt = $db->prepare($sql);
$stmt->bindParam(':config', $json, PDO::PARAM_STR);

$stmt->execute();
Run Code Online (Sandbox Code Playgroud)

第二个返回此错误:

SQLSTATE[22032]: <>: 3140 Invalid JSON text: "Invalid value." at position 0 in value for column 'test.config'.
Run Code Online (Sandbox Code Playgroud)

$json 上的 var_dump:

page.php:18:string '{"1":{"2":"kkk","4":"pizza"}}' (length=29)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我不明白。

php mysql json pdo

3
推荐指数
1
解决办法
4282
查看次数

标签 统计

json ×1

mysql ×1

pdo ×1

php ×1