Я пытаюсь вставить или обновить данные массива в базу данных mysql.php mysql массив вставить данные, если не существует else update
мой массив выглядеть
Array
(
[0] => Array
(
[R_ID] => 32
[email] => [email protected]
[name] => Bob
)
[1] => Array
(
[R_ID] => 32
[email] => [email protected]
[name] => Dan
)
[2] => Array
(
[R_ID] => 32
[email] => [email protected]
[name] => Paul
)
[3] => Array
(
[R_ID] => 35
[email] => [email protected]
[name] => Mike
)
)
Я использую этот код для вставки данных в базу данных MySQL.
if(is_array($EMailArr)){
$sql = "INSERT INTO email_list (R_ID, EMAIL, NAME) values ";
$valuesArr = array();
foreach($EMailArr as $row){
$R_ID = (int) $row['R_ID'];
$email = mysql_real_escape_string($row['email']);
$name = mysql_real_escape_string($row['name']);
$valuesArr[] = "('$R_ID', '$email', '$name')";
}
$sql .= implode(',', $valuesArr);
mysql_query($sql) or exit(mysql_error());
}
Но я хочу, если значение массива R_ID матч с любым значением R_ID строки, то запрос обновить существующее значение в противном случае запрос вставить новую строку.
Я не могу понять, как я могу это сделать.
Я бы начать не используя mysql_ * функции, они устарели. Перепишите с помощью PDO, это лучший способ абстракции db. Чтобы ответить на ваш вопрос, я предполагаю, что я запустил бы запрос на db, чтобы увидеть, существует ли запись, если она обновляет ее, если она не вставляет ее. http://php.net/pdo – Halfstop
Я собираюсь подавить ... Я всегда должен спрашивать: «В чем проблема? Что вы пробовали до сих пор? "На каждый вопрос? – bcesars
Использование MySQL INSERT .... ON DUPLICATE: http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html – mrunion