一次在数据库中插入多个数据


Insert multiple data in database at once

我有这样的代码,它允许我在数据库中插入我选择的一些日期,现在这个只插入一个值,而不是全部,就像它停在第一个值一样。。

你能告诉我我做错了什么吗?

谢谢!

$job_id=$_REQUEST['job_id'];
$dates = explode(",", $_POST['altField']);
foreach($dates as $date){
$sql="INSERT INTO date (job_id,date) VALUES('$job_id','$date')";
mysql_query($sql);
}
$job_id=$_REQUEST['job_id'];
$dates = explode(",", $_POST['altField']);
$values_arr = array();    
foreach ($dates as $date) {
    $values_arr[] = "('" . $job_id . "','" . $date . "')";
}
$values = implode(", ", $values_arr);
$sql="INSERT INTO date (job_id,date) VALUES $values";
mysql_query($sql);
$job_id=$_REQUEST['job_id'];
$dates = explode(",", $_POST['altField']);
foreach($dates as $date){
    $values .= '("'.$job_id.'","'.$date.'"),';
}
$sql="INSERT INTO date (job_id,date) VALUES " . substr($values, 0, -1);
mysql_query($sql);

插入可以有多个值集,所以您只需要在foreach中设置值,然后在foreach之外进行查询。你也可以这样做,得到同样的结果,

$job_id=$_REQUEST['job_id'];
$dates = explode(",", $_POST['altField']);
foreach($dates as $date){
    $values[] = '("'.$job_id.'","'.$date.'")';
}
$sql="INSERT INTO date (job_id,date) VALUES " . implode(',',$values);
mysql_query($sql);

提醒

始终对您的输入进行消毒。不这样做可能会导致SQL注入,并给您带来重大问题。看看这个,mysql也没有维护,建议切换到MySqli或PDO。

try:

$sql = "INSERT INTO date SET job_id='".$job_id."', date='".$date."'";
mysql_query($sql);