【发布时间】:2014-03-28 13:46:39
【问题描述】:
我正在编写数据库导入函数。我的语言是php。我的数据是 JSON 格式。
我的代码如下:
public function import($data = '') {
if (!isset($data)) {
return array(
'error' => "Error: no data"
);
}
$data_arr = json_decode($data, true);
if (is_array($data_arr) && sizeof($data_arr)) {
// Truncate DB table
$sql = 'TRUNCATE `ms_data`';
$this->db->query($sql)->execute();
// Import data
$sql = 'INSERT INTO `ms_data` (
`id`,
`name`,
`parent`,
`ordering`
) VALUES (
:id,
:name,
:parent,
:ordering
)';
foreach($data_arr as $d) {
$this->db->query($sql)
->bind(":id", $d['id'])
->bind(":name", trim($d['name']))
->bind(":ordering", $d['ordering'])
->execute();
}
return array(
'status' => 1,
'message' => 'Data has been imported'
);
} else {
return array(
'error' => "Input is not array"
);
}
}
这是工作代码,但是:也许您知道上面我现在不知道的任何代码问题或任何改进建议?
谢谢!
【问题讨论】:
-
希望您永远不必处理大量数据
-
这个功能将在我们的店铺脚本中使用(产品导入):)
-
第一次审核后我有一些问题:您能否发布“SHOW CREATE TABLE ms_data”的输出以获取表结构的详细信息?您是在使用带有 mysql 驱动程序或 mysqli 类的 PDO 吗? :parent 参数发生了什么?它永远不会绑定。可能发布 $this->db 实例的类也很有用。