проблема с foreach и записью в бд

380
28 ноября 2016, 18:39

Здравствуйте! хочу что бы при каждом поподении в бд создавалась новая стока для файла, помогите второй день мучаюсь

 $error_list = implode(',', $error_list); 
    $success_list = implode(',', $success_list); 
    $success_list_small = implode(',', $success_list_small); 
    $id = $_GET['id']; 
    require_once( $_SERVER['DOCUMENT_ROOT'] . '/bd.php'); 
    $sqlimage .= "INSERT INTO images_big(id, catalog, filename, catalog_small, filename_small)  
        VALUES foreach($success_list as $success_lists){  
            $sqlimage .=("'.$id.'" 
               ,"'.$uploads_dir.'" 
               ,"'.$success_lists.'" 
               ,"'.$uploads_dir_smale.'" 
               ,"'.$success_list_small.'") 
        }"; 
    $sqlimage.=implode(',',$array); 
    $stmtimg = $pdo->query($sqlimage); 
    $stmtimg->execute();

Answer 1

Генерировать SQL-запрос таким образом является крайне плохой практикой, но если надо, то

$params = [];
foreach($success_list as $row){
    $params[] = '("'.implode('","',$row).'")';
}
$sql = 'INSERT INTO images_big(id, catalog, filename, catalog_small, filename_small) 
        VALUES '.implode(',',$params);

Но более правильно сначала подготовить запрос и выполнять каждый INSERT отдельно

$stmt = $pdo->prepare("INSERT INTO images_big(id, catalog, filename, catalog_small, filename_small) 
    VALUES (?,?,?,?,?)");
list($id,$catalog,$filename,$catalog_small,$filename_small)=$success_list[0];
$stmt->bindParam(1,$id,PDO::PARAM_INT);
$stmt->bindParam(2,$catalog,PDO::PARAM_STR);
$stmt->bindParam(3,$filename,PDO::PARAM_STR);
$stmt->bindParam(4,$catalog_small,PDO::PARAM_STR);
$stmt->bindParam(5,$filename_small,PDO::PARAM_STR);
foreach($success_list as $row){
    list($id,$catalog,$filename,$catalog_small,$filename_small) = $row;
    $stmt->execute();
}
Answer 2

Некого не смутило что у него цикл в запросе?

READ ALSO
Angular vs jQuery

Angular vs jQuery

Объясните в чем преимущества Angular перед jQuery, если такие естьВ каких случаях целесообразней использовать ангулар?

448
Возведение в степень C++

Возведение в степень C++

Я уже пару раз сегодня просил помощи и вот что получилосьПрограмма должна выполнять возведение в степень длинных чисел

746