小编Vis*_*ent的帖子

在数组中的一个查询中插入多行

我有一个帖子的数组:

//this are arrays
$name    = $_POST["name"];
$age     = $_POST["age"];
$date    = $_POST["date"];
Run Code Online (Sandbox Code Playgroud)

我在PDO中有一个插入查询:

$stmt = $db->prepare("INSERT INTO staff (name, age, address) VALUES (:name, :age, :address)");
Run Code Online (Sandbox Code Playgroud)

我的问题如何使用看起来像这样的PHP生成/或实现查询:

INSERT INTO staff (name, age, address) VALUES
($name[0], $age[0], $address[0]), ($name[1], $age[1], $address[1])... etc
Run Code Online (Sandbox Code Playgroud)

我试图保持服务器负载低.

php mysql sql arrays pdo

5
推荐指数
1
解决办法
5220
查看次数

如何在json_encode中存储日文字符?

我正在尝试将json_encoded字符串保存到数据库,但每当我这样做时,我得到这个:

u30abu30bf
Run Code Online (Sandbox Code Playgroud)

保存时:

??
Run Code Online (Sandbox Code Playgroud)

我怎么解码这样的东西?

试过php utf8_decode和编码,但我似乎没有工作,我也尝试阅读下面的线程:

  1. PHP解码和编码带有unicode字符的json

  2. 难以通过json_encode传递日文字符(UTF-8)

这是$ flex_encoded的var_dump数据,然后将其作为参数传递:

//this one seems to passing the right encoding
[{"japanese_name":"\u30ca\u30ab\u30cd"},{"japanese_name":"\u30ca\u30ab\u30cd"}]
Run Code Online (Sandbox Code Playgroud)

这是函数调用:

$this->updateFlexData($game_id, $flex_encoded);
Run Code Online (Sandbox Code Playgroud)

这是更新我的数据库的功能:

function updateFlexData($game_id, $json_data)
{
    $arrVal = array(
        'json_data'=> $json_data,
    );

    Db::getInstance()->autoExecute('japanese_names', $arrVal, 'UPDATE', " game_id = '".$game_id."'", false);
}
Run Code Online (Sandbox Code Playgroud)

数据库列类型是:

`json_data` longtext CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
Run Code Online (Sandbox Code Playgroud)

我的PHP版本:

PHP版本5.3.10

sql json utf-8

5
推荐指数
2
解决办法
3466
查看次数

标签 统计

sql ×2

arrays ×1

json ×1

mysql ×1

pdo ×1

php ×1

utf-8 ×1