Я создал функцию PHP для вставки данных в таблицу MySQL. Одним из значений, передаваемых в функцию, является массив. Массив содержит только уникальные значения. Когда я запускаю скрипт, он сохраняет одну запись в таблице с полем, соответствующим массиву, в котором хранятся все значения массива.
Это моя функция, которая находится в отдельном файле класса:
public function importTest($val1,$valArray,$val3){
try {
$stm = $this->dbSt->prepare('INSERT INTO table (val1,valArray,val3) VALUES (:val1,:valArray,:val3)');
$stm->bindParam(':val1',$val1);
$stm->bindParam(':valArray',$valArray);
$stm->bindParam(':val3',$val3);
if($stm->execute()){
return true;
}
}catch (PDOException $e) {
echo $e->getMessage();
}
return false;
}
Установка $test
и отображение на экране в целях тестирования. Это отображает все уникальные значения в массиве, который я и ищу.
$test = implode("<br />", (array_keys($array_unique_guests)));
echo 'TEST:<br /> '.$test.' <br />'; // Displays all unique values
echo '<br /><br />';
Здесь я вызываю функцию:
$importTest = $statsDao->importTest($getSites[$x]['site_id'],$test,$updateDate);
Я использую цикл for для получения значений для $getSites
, который вызывает другую функцию.
Мне нужно, чтобы все значения отображались на экране выше как $ test, чтобы они сохранялись как новые записи в таблице. Вместо этого все они добавляются в одну запись.
Я хотел бы вставить столько строк, сколько есть значений в массиве. Это число изменится, но, например, если в массиве 10 значений, в таблицу необходимо добавить 10 записей, а также дату и другое поле. По сути, я пытаюсь получить все значения в массиве и создать новую запись для каждого из них при запуске сценария.
Надеюсь, это понятно. Я застрял на этом некоторое время и надеюсь, что кто-то может помочь!
Спасибо!