通过php将数组参数插入mysql
我在这里遵循了一些线索,但我看不出我做错了什么:通过php将数组参数插入mysql,php,mysql,Php,Mysql,我在这里遵循了一些线索,但我看不出我做错了什么: $friends = array ( array("yaron","levi","yaron@gmail.com"), array("david","chohen","david@gmail.com"), array("michal","rubin","michal@gmail.com"), array("dafna","mishal","dafna@gmail.com"),
$friends = array
(
array("yaron","levi","yaron@gmail.com"),
array("david","chohen","david@gmail.com"),
array("michal","rubin","michal@gmail.com"),
array("dafna","mishal","dafna@gmail.com"),
array("tamar","mishal","tamar@gmail.com")
);
if(is_array($friends)){
$sql = array();
foreach( $friends as $row ) {
$sql[] = '("'.mysql_real_escape_string($row['firstname']).'","'.mysql_real_escape_string($row['lastname']).'","'.mysql_real_escape_string($row['email']).'")';
}
mysql_query('INSERT INTO MyGuests (firstname,lastname,email) VALUES '.implode(',', $sql));
}
您将得到未定义索引错误,因为您的数组没有按firstname、lastname等进行索引。。在内爆期间,也用单引号将值括起来。这应该会有所帮助
if(is_array($friends)){
$sql = array();
foreach( $friends as $row ) {
$sql[] = mysql_real_escape_string($row[0]);
$sql[] = mysql_real_escape_string($row[1]);
$sql[] = mysql_real_escape_string($row[2]);
$values = "'".implode("','", $sql)."'";
mysql_query("INSERT INTO MyGuests (firstname,lastname,email) VALUES(".$values.")");
}
}
将您的好友数组更改为:
$friends = array(
array("firstname"=>"yaron", "lastname"=>"levi", "email"=>"yaron@gmail.com"),
array("firstname"=>"david", "lastname"=>"chohen","email"=>"david@gmail.com"),
array("firstname"=>"michal","lastname"=>"rubin", "email"=>"michal@gmail.com"),
array("firstname"=>"dafna", "lastname"=>"mishal","email"=>"dafna@gmail.com"),
array("firstname"=>"tamar", "lastname"=>"mishal","email"=>"tamar@gmail.com")
);
通过此更改,您的脚本将成功运行 问题是查询在每个循环轮上运行。。。仅供参考-仍不起作用: