@jenya7771

Как обновить существующую запись в mysql?

Здравствуйте, есть скрипт который из CSV переносит данные в БД. Всё работает но не получается сделать что бы при добавлении новой записи если уже существует такая строка он просто перезаписал её, а если нет то просто записал. Помогите.
<?php 	
class CSV {
	
	private $_csv_file = null;
	
	
	public function __construct($csv_file) {
        if (file_exists($csv_file)) { //Если файл существует
            $this->_csv_file = $csv_file; //Записываем путь к файлу в переменную
        }
        else { 
        	throw new Exception("Файл \"$csv_file\" не найден"); 
        }
    }
    
     // Метод для чтения из csv-файла. Возвращает массив с данными из csv
    
    
    public function getCSV() {
        $handle = fopen($this->_csv_file, "r"); //Открываем csv для чтения
        
        $array_line_full = array(); //Массив будет хранить данные из csv
        //Проходим весь csv-файл, и читаем построчно. 3-ий параметр разделитель поля
        while (($line = fgetcsv($handle, 0, ";")) !== FALSE) { 
            $array_line_full[] = $line; //Записываем строчки в массив
        }
        fclose($handle); //Закрываем файл
        return $array_line_full; //Возвращаем прочтенные данные
    }
    
}

try {
    $csv = new CSV("dick.csv"); //Открываем наш csv
    
     //Чтение из CSV  (и вывод на экран)
    
    
    $get_csv = $csv->getCSV();
    
    $connection=mysql_connect ("localhost", "111", "222");
 $db1=mysql_select_db ("namebd", $connection); //подкл к имеющейся бд
 // $del="DELETE FROM las"; 
 // $result=mysql_query ($del);//удаление из БД
 
    foreach ($get_csv as $value) { //Проходим по строкам файла CSV
    	$available = $value[0];
    	$categoryId = $value [1];
    	$currencyId = $value[2];
    	$delivery = $value[3];
    	$description = $value[4];
    	$id = $value[5];
    	$model = $value[6];
    	$modified_time	 = $value[7];
    	$name = $value[8];
    	$param = $value[9];
    	$pickup = $value[10];
    	$picture = $value[11];
    	$price = $value[12];
    	$store = $value[13];
    	$type = $value[14];
    	$typePrefix = $value[15];
    	$url = $value[16];
    	$vendor = $value[17];
    	
    	$query="insert into pudra values('$available','$categoryId', '$currencyId', '$delivery', '$description', '$id', '$model', '$modified_time	', '$name', '$param', '$pickup', '$picture', '$price', '$store', '$type', '$typePrefix', '$url', '$vendor')";
$result=mysql_query($query); //добавл данных
}
if($result) echo "Обновление успешно завершено  OK";
else echo"error";


}
catch (Exception $e) { //Если csv файл не существует, выводим сообщение
	echo "Ошибка ERROR: " . $e->getMessage();
}
?>
  • Вопрос задан
  • 174 просмотра
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Комбинированный UNIQUE или PRIMARY индекс на ключевые поля записи и INSERT ... ON DUPLICATE UPDATE или INSERT IGNORE.
И не используйте mysql_, начиная с PHP 7.0 эти функции не поддерживаются. Переходите на PDO или mysqli_.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы