从php文件在mysql数据库中插入JSON数组
你好,我有一个像这样的从php文件在mysql数据库中插入JSON数组,php,mysql,json,Php,Mysql,Json,你好,我有一个像这样的JSon数组 Array ( [NTAy] => ALFA ROMEO [NTA0] => AUDI [NTEx] => BMW [NjAy] => CHEVROLET [NTEz] => CHRYSLER [NTE0] => CITROËN [NjAz] => DACIA [NjQ5] => DAEWOO [NTE3] => DAIHAT
JSon
数组
Array
(
[NTAy] => ALFA ROMEO
[NTA0] => AUDI
[NTEx] => BMW
[NjAy] => CHEVROLET
[NTEz] => CHRYSLER
[NTE0] => CITROËN
[NjAz] => DACIA
[NjQ5] => DAEWOO
[NTE3] => DAIHATSU
)
INSERT INTO jos_virtuemart_categories_ro_ro (virtuemart_category_id, category_name, slug)
VALUES 'NTAy','ALFA ROMEO','ALFA ROMEO','NTA0','AUDI','AUDI' etc
我必须把它一行一行地插入数据库,我使用
foreach ($mata as $marca_id => $marca_name){
$line = $line. "','" . $marca_id . "','". $marca_name . "','". $marca_name;
}
$line = substr($line, 0, strlen($line)-1);
$values[$i] = $line;
++$i;
$values =implode ( $values);
echo $values;
echo "<br />";
我遇到了一个错误,无法让它工作。有人能帮我吗?为什么不使用事先准备好的语句?尤其是当您获取用户生成的数据并将其输入数据库时 看起来您的最终SQL查询将如下所示
Array
(
[NTAy] => ALFA ROMEO
[NTA0] => AUDI
[NTEx] => BMW
[NjAy] => CHEVROLET
[NTEz] => CHRYSLER
[NTE0] => CITROËN
[NjAz] => DACIA
[NjQ5] => DAEWOO
[NTE3] => DAIHATSU
)
INSERT INTO jos_virtuemart_categories_ro_ro (virtuemart_category_id, category_name, slug)
VALUES 'NTAy','ALFA ROMEO','ALFA ROMEO','NTA0','AUDI','AUDI' etc
您必须将其分解为多个查询为什么不使用准备好的语句?尤其是当您获取用户生成的数据并将其输入数据库时
foreach ($mata as $marca_id => $marca_name) {
$id = intval($marca_id);
$name = mysql_real_escape_string($marca_name);
$values = "$id, '$name', '$name'";
mysql_query("INSERT INTO jos_virtuemart_categories_ro_ro (virtuemart_category_id, category_name, slug) VALUES ($values)");
}
看起来您的最终SQL查询将如下所示
Array
(
[NTAy] => ALFA ROMEO
[NTA0] => AUDI
[NTEx] => BMW
[NjAy] => CHEVROLET
[NTEz] => CHRYSLER
[NTE0] => CITROËN
[NjAz] => DACIA
[NjQ5] => DAEWOO
[NTE3] => DAIHATSU
)
INSERT INTO jos_virtuemart_categories_ro_ro (virtuemart_category_id, category_name, slug)
VALUES 'NTAy','ALFA ROMEO','ALFA ROMEO','NTA0','AUDI','AUDI' etc
您必须将其分解为多个查询在
foreach
循环之外,$i
在做什么?您希望查询是什么?@AmalMurali我认为OP对INSERT语句和循环的工作方式没有正确的理解。$I
在foreach
循环之外做了什么?您希望查询是什么?@AmalMurali我认为OP对INSERT语句和循环的工作方式没有正确的理解。
foreach ($mata as $marca_id => $marca_name) {
$id = intval($marca_id);
$name = mysql_real_escape_string($marca_name);
$values = "$id, '$name', '$name'";
mysql_query("INSERT INTO jos_virtuemart_categories_ro_ro (virtuemart_category_id, category_name, slug) VALUES ($values)");
}