Проблема при INSERT большого (>4) json массива в MYSQL

202
09 апреля 2018, 00:01

Уважаемые, подскажите, пытаюсь добавить INSERTом json (массив из более чем 4 групп элементов) в MySQL и в итоге ничего не добавляется.

Пример JSON-файла:

[{
    "f_name" : "1",
    "l_name" : "Samanta",
    "class"  : "XII",
    "section": "A",
    "roll"   : "1"
},
{
    "f_name" : "2",
    "l_name" : "Roy",
    "class"  : "XI",
    "section": "A",
    "roll"   : "3"
},
{
    "f_name" : "3",
    "l_name" : "Gupta",
    "class"  : "XI",
    "section": "B",
    "roll"   : "5"
},
{
    "f_name" : "4",
    "l_name" : "Chakraborty",
    "class"  : "XII",
    "section": "A",
    "roll"   : "9"
},
{
    "f_name" : "5",
    "l_name" : "Chakraborty",
    "class"  : "XII",
    "section": "A",
    "roll"   : "9"
},
{
    "f_name" : "6",
    "l_name" : "Chakraborty",
    "class"  : "XII",
    "section": "A",
    "roll"   : "9"
}]

Структура таблицы (всё VARCHAR): f_name, l_name, class, section, roll.

Сам запрос в MySQL:

 foreach($data_array as $row) {
 $query .= "INSERT INTO `pros` set 
                        `f_name`  = '".$row['f_name']."',
                        `l_name`  = '".$row['l_name']."', 
                        `class`   = '".$row["class"]."',
                        `section` = '".$row["section"]."', 
                        `roll`    = '".$row["roll"]."';";
 }

При добавлении до 4-х групп в массиве - все отлично. Больше - не вставляет вообще ничего. В чем может быть проблема? Возможно есть какие-либо ограничение на INSERT?

Спасибо!

Answer 1

попробуйте сначала собрать все значения, затем другой командой вставить их в базу. Пример:

 $data = [];
 foreach($data_array as $row) {
     $firsnName = mysql_real_escape_string($row['f_name']);
     $lastName  = mysql_real_escape_string($row['l_name']); 
     $class     = mysql_real_escape_string($row["class"]);
     $section   = mysql_real_escape_string($row["section"]); 
     $roll      = mysql_real_escape_string($row["roll"]);
     $data[] = "('$firsnName', '$lastName', '$class', '$section', '$roll')";
 }
 $sql = "INSERT INTO pros (f_name, l_name, class, section, roll) values ";
 $sql .= implode(',', $data);
READ ALSO
Не работает password_verify()

Не работает password_verify()

Хотел создать систему регистрации и авторизацииУже всю голову сломал, не знаю в чем проблема

154
Выборка последней записи из массива

Выборка последней записи из массива

Ребят привет, вопроснужно выбрать последнюю запись из массива

168
Nhibernate, no session or session was closed

Nhibernate, no session or session was closed

Всем привет! Ошибка:

208
C# ClosedXML определение конца листа

C# ClosedXML определение конца листа

ЗдравствуйтеВопрос: Использую библиотеку ClosedXML, никак не пойму и не могу найти как определить конец листа в файле Excel

184