2017-01-03 3 views
-1

Когда я пытаюсь вставить массив с другим строковым значением в базу данных, он дает кол-во столбца не соответствует ошибке подсчета числа. Мой код, указанный ниже каких-либо объяснений, почему эта ошибка происходит выходphp explode ошибка ввода данных в массиве

$Skills = "java,php"; 
$memberId ="1"; 
$wordArray = explode(",", $Skills); 
$query = "INSERT INTO tempskill (skill,memberId) VALUES ('" .implode("'), ('", $wordArray). "' , '".$memberId."') "; 
echo $Skills;     

mysql_query($query) or die ('Error :' . mysql_error()); 

этот код является - Java, C# Ошибка: Количество столбцов не совпадает с количеством значений в строке 1

+0

Задать вопрос, поставив эхо на запрос $ и запустив запрос на терминал mysql и проверив ошибку –

+0

Не сохраняйте CSV в столбце http://stackoverflow.com/questions/41304945/best-type-of -indexing-when-there-like-clause/41305027 # 41305027 http://stackoverflow.com/questions/41215624/sql-table-with-list-entry-vs-sql-table-with-a-row- for-each-entry/41215681 # 41215681 – e4c5

+0

Спасибо за ваш ответ , когда я получаю эхо-запрос, он дает это - INSERT INTO tempskill (skill, memberId) VALUES ('abc'), ('def', '1') Ошибка: Количество столбцов не соответствует количеству значений в строке 1 – Chara

ответ

1

memberId Для добавления к каждой паре Вставленные значения следует использовать:

$query = "INSERT INTO tempskill (skill,memberId) VALUES ('" .implode("', '" . $memberId . "'), ('", $wordArray) . "', '" . $memberId . "')"; 
// echoes `INSERT INTO tempskill (skill,memberId) VALUES ('java', '1'), ('php', '1')` 

Но

  1. mysql устарел и удален в php7.
  2. Такой код является vurnerable для sql-инъекций.

Итак, советую перейти на PDO/mysqli apis и подготовленных инструкций. Больше информации here.