我已将json数据转换为数组,但现在我想将其插入到我的数据库中,我不断获取数组
这是代码
for ($i=0; $i<=$checking; $i++) {
$catid = $ids[$i];
$catname = $names[$i];
$catapps = $apps[$i];
$caturl = $iconurls[$i];
$query = "INSERT INTO cat VALUES ('".$catid."','".mysql_real_escape_string($catname)."','".$catapps."','".mysql_real_escape_string($caturl)."')";
mysql_query($query);
};
答案 0 :(得分:1)
我想建议您使用AdoDB更好地将数据插入/更新到MySQL中。使用AutoExecute
插入/更新时,AdoDB会自动转义。这是一个用法示例:
$catid = $ids[$i];
$catname = $names[$i];
$catapps = $apps[$i];
$caturl = $iconurls[$i];
//set table name
$table_name = 'cat';
//set field values
$data = array (
'catid' => $catid,
'catname' => $catname,
'catapps' => $catapps,
'caturl' => $caturl
);
//do insert
$result = $adodb->AutoExecute($table_name, $data, 'INSERT');
请注意,$data
数组中使用的密钥是MySQL中cat
表中的列名,因此请根据数据库中的列名进行调整。
如果要将数组插入mysql列,我建议您在插入时使用serialize
,然后在获取数据时,在显示或处理之前使用unserialize
。
答案 1 :(得分:0)
哪一列包含'Array'
?
尝试print_r
或var_dump
$catid
,$catname
,$catapps
和$caturl
。
如果您有'Array'
,可能是因为其中至少有一个是数组。当php尝试将一个数组转换为一个String时(例如,当用字符串将其转换)时,它会转换为字符串'Array'
。
答案 2 :(得分:0)
通过连接值来撰写单个查询。可见:
(为了清楚起见,有一点重组)
$query = "INSERT INTO cat VALUES ";
for ($i=0; $i<=$checking; $i++)
{
if ($i > 0)
$query .= ',';
$catid = intval($ids[$i]);
$catname = mysql_real_escape_string($names[$i]);
$catapps = mysql_real_escape_string($apps[$i]);
$caturl = mysql_real_escape_string($iconurls[$i]);
$query .= "($catid, '$catname', '$catapps', '$caturl')";
}
mysql_query($query);
答案 3 :(得分:0)
使用PDO和准备好的声明:
try {
// connect to the DB
$dbh = new PDO('mysql:host=localhost;dbname=my_db','user','password');
// prepare the query : it will be faster and safer
$query = $dbh->prepare("INSERT INTO cat VALUES (id, name, app, url) VALUES (:id, :name, :app, :url)");
// tell which vars will be used to fill the query
$query->bindParam(':id', $catid);
$query->bindParam(':name', $catname);
$query->bindParam(':app', $catapps);
$query->bindParam(':url', $caturl);
// execute your stuff
for ($i = 0; $i <= $checking; $i++) {
$catid = $ids[$i];
$catname = $names[$i];
$catapps = $apps[$i];
$caturl = $iconurls[$i];
$stmt->execute();
};
} catch(PDOException $ e){ //处理连接错误 }
$ dbh = NULL;