Здравствуйте! При формировании запроса к MySQL, столкнулся с проблемой ковычек.
Собираю строку запроса, используя код ниже:
Формирование строки
$query_string_category_name = "INSERT INTO `oc_testtest`(`name`) VALUES "; //Первая часть запроса.
foreach($data as $k => $v){
foreach($v as $k1 => $v1){
if($v1['name'] !== NULL){ // Если обкект не пустой, то добавить в запрос "(".
$query_string_category_name .= "("; //Вторая часть запроса.
}
$query_string_category_name .= mysqli_real_escape_string($connect_bd, ($v1['name'])); //Третья часть запроса. Сам объект. Экранируем ковычки
if($v1['name'] !== NULL){ // Если объект не пустой, то дабавить в запрос ")".
$query_string_category_name .= ")"; //Четвертая часть запроса.
}
if ($k1+1 < count($v)) { // Если общее количество ключей меньше текущего, то поставить.
$query_string_category_name .= ", "; //Пятая часть запроса.
}
// $query_string_category_name .= "ON DUPLICATE KEY UPDATE `name`"; //Обновляем дубликаты
}
}
// $res_name = mysqli_query($connect_bd, $query_string_category_name); // Обращение к базе данных с запросом.
print_r($query_string_category_name);
Строка действительно формируется, но почему-то не работает экранирование...
Вот как выглядит запрос в самом MySQL:
Как видите проблема в ковычках. Решил экранировать. Но почему нет толку?