将变量数组数据插入MYSQL
我想从使用Facebook Open Graph的数组中取数据。我正在使用foreach语句获取数组,但是这使得6个不同的INSERT语句。我希望数组中的每个值能够被提交到一个MYSQL行中。将变量数组数据插入MYSQL
请注意,$ insert2插入6条不同的行,$ insert 3插入一行,但只是$ urlform。
任何帮助将不胜感激。
的代码是:
require_once('OpenGraph.php');
$urlget2 = "http://www.example.com/article/1/title";
$graph = OpenGraph::fetch($urlget2);
foreach ($graph as $key => $value) {
$array = array($key => $value);
print_r($array);
$key = type;
$key1 = title;
$key2 = image;
$key3 = description;
$key4 = url;
$subtype = $array[$key];
$subtitle = $array[$key1];
$subimage = $array[$key2];
$subdesc = $array[$key3];
$urlform = $array[$key4];
$useridme = "5";
$insert2 = "INSERT INTO share VALUES('','$urlform','$subtype','$subtitle','$subimage','$subdesc','$subtime','$datesubmit','$subevent','$useridme','$facebookidme','$grpurl')";
echo "<hr />";
echo $insert2;
}
echo "<hr />";
$insert3 = "INSERT INTO share VALUES('','$urlform1','$subtype','$subtitle','$subimage','$subdesc','$subtime','$datesubmit','$subevent','$useridme','$facebookidme','$grpurl')";
echo "<hr />";
echo $insert3;
用这个替换代码。此外阅读本link
require_once('OpenGraph.php');
$urlget2 = "http://www.example.com/article/1/title";
$graph = OpenGraph::fetch($urlget2);
$insertvalues = '';
foreach ($graph as $key => $value) {
$array = array($key => $value);
print_r($array);
$key = type;
$key1 = title;
$key2 = image;
$key3 = description;
$key4 = url;
$subtype = $array[$key];
$subtitle = $array[$key1];
$subimage = $array[$key2];
$subdesc = $array[$key3];
$urlform = $array[$key4];
$useridme = "5";
//get all insert values
$insertvalues .= ", ('','".$urlform."','".$subtype."','".$subtitle."','".$subimage."' ,'".$subdesc."','".$subtime."','".$datesubmit."','".$subevent."','".$useridme."','".$facebookidme."','".$grpurl."')";
echo "<hr />";
echo $insertvalues;
}
echo "<hr />";
$insertvalues= substr($insertvalues,1); //just takes off the leading comma
$insert3 = "INSERT INTO share VALUES ".$insertvalues;
echo "<hr />";
echo $insert3;
mysql_query($insert3);
的foreach
循环运行在$insert2
连连。 我会改变:
$insert2 = "INSERT INTO share VALUES('','$urlform','$subtype',
'$subtitle','$subimage','$subdesc','$subtime','$datesubmit',
'$subevent','$useridme','$facebookidme','$grpurl')";
到:
$inserts[] = "INSERT INTO share VALUES('','$urlform','$subtype',
'$subtitle','$subimage','$subdesc','$subtime','$datesubmit',
'$subevent','$useridme','$facebookidme','$grpurl')";
使得foreach
循环之后你就会有$inserts
阵列。您将能够巴使用,如果为:
foreach($inserts as $insert){
//use $insert to insert the record into the DB
}
对于乔斯林:
我没有看到使用一个连接字符串,一个数组的优势,但这里有云:
你可以改变$insert2 = ...
至:
$inserts .= "INSERT INTO share VALUES('','$urlform','$subtype',
'$subtitle','$subimage','$subdesc','$subtime','$datesubmit',
'$subevent','$useridme','$facebookidme','$grpurl');";
我建议尝试此代码:现在
require_once('OpenGraph.php');
$urlget2 = "http://www.example.com/article/1/title";
$graph = OpenGraph::fetch($urlget2);
$insert2 = array();
foreach ($graph as $key => $value) {
$array = array($key => $value);
print_r($array);
$key = type;
$key1 = title;
$key2 = image;
$key3 = description;
$key4 = url;
$subtype = $array[$key];
$subtitle = $array[$key1];
$subimage = $array[$key2];
$subdesc = $array[$key3];
$urlform = $array[$key4];
$useridme = "5";
$insert2[] = "('','$urlform','$subtype','$subtitle','$subimage','$subdesc','$subtime','$datesubmit','$subevent','$useridme','$facebookidme','$grpurl')";
echo "<hr />";
}
$query = "INSERT INTO share VALUES".implode(", ", $insert2);
echo "$query<br>";
mysql_query($query);
echo "<hr />";
$insert3 = "INSERT INTO share VALUES('','$urlform1','$subtype','$subtitle','$subimage','$subdesc','$subtime','$datesubmit','$subevent','$useridme','$facebookidme','$grpurl')";
echo "<hr />";
echo $insert3;
$ insert2是将存储所有你要插入的值的数组。在foreach
循环之后,将所有值连接在一起以创建将插入表中所有值的单个 INSERT查询。使用一个INSERT查询插入所有值比使用多个单独的插入要快得多。如果您的脚本同时插入许多记录(数千或更多),您可能会注意到它现在执行得更快。
文档:INSERT
尝试了这一点,它没有插入$查询到数据库中。 $查询的回声是:INSERT INTO共享VALUESINSERT INTO共享VALUES('','','','RG3和红皮在季前赛开局中击败账单 - Yoozpaper |免费在线文章','','','1345156569' ,“2012-08-16”,“”,“5”,“47001227”,“人参皂甙Rg3和 - 红皮败国债功能于季前赛揭幕战--- yoozpaper- | - 免费 - 在线文章”) ,INSERT INTO share VALUES('','','','','','','1345156569','2012-08-16','','5','47001227','') ,INSERT INTO share VALUES('','','article','','','','1345156569','2012-08-16','','5','47001227','' ) – stevieD 2012-08-16 22:39:09
您的'foreach'在哪里完成?一些线路丢失。 – Jocelyn 2012-08-16 05:25:41
Foreach在echo $ insert2之后完成。 – stevieD 2012-08-16 05:37:04
对不起。我没有仔细查看:-(此外,缩进有点误导 – Jocelyn 2012-08-16 05:37:55