Итак, я создал простую функцию PHP, которая «ОБНОВЛЯЕТ» мою строку MySQL, просто обновляя массив, полученный PHP.
function db_updateproduct(array $new, array $old = array()) {
$diff = array_diff($new, $old);
return 'INSERT INTO table (`'.mysql_real_escape_string(implode(array_keys($diff), '`,`')).'`) VALUES \''.mysql_real_escape_string(implode(array_values($diff), '\',\'')).'\'';
}
...
Обновление (с подтвержденным ответом)
function db_updateproduct(array $new, array $old = array()) {
$diff = array_diff($new, $old);
return 'INSERT INTO `Product` (`'.implode(array_keys($diff), '`,`').'`) VALUES (\''
.implode(array_map('mysql_real_escape_string', array_values($diff)), '\', \'').'\')';
}
сейчас ...
echo db_updateproduct(array('a' => 'on\'e', 'b' => 'two', 'c' => 'three'));
возвращается:
INSERT INTO `Product` (`a`,`b`,`c`) VALUES ('on\'e', 'two', 'three')
(Как и ожидалось / хотел!)