2013-06-20 3 views
0

Это мой выходной ток от preg_match_allPHP массив выходит назад

Array 
(
[0] => Array 
    (
     [0] => 2 Sentence text here 
    ) 

) 

Array 
(
[0] => Array 
    (
     [0] => 3 Sentence text here. 
     [1] => 4 Sentence text here. 
     [2] => 5 Sentence text here. 
    ) 

) 

Я пытаюсь вставить каждый вывод в виде новой строки в таблице, но она думает, что каждый [0] [1] [ 2] - новый столбец. Как вставить массив в mysql?

$query = "INSERT INTO table (col1) VALUES "; 
foreach ($matches as $item) { 
$query .= "('".$item[0]."'),"; 
} 
$query = rtrim($query,","); 
$result = mysql_query($query); 

выше, очевидно, только вставляет первую строку массива

+1

Можете ли вы показать, как выглядит ваш запрос '$ query', прежде чем передать его в mysql_query? –

+0

Что содержит $ match? – Aris

+1

Так много чего не так с этим, я даже не знаю с чего начать. – crush

ответ

1

Ну, у вас есть массив в другой массив, так что ...

$query = "INSERT INTO table (col1) VALUES "; 

if(!empty($matches)) 
{ 
    foreach ($matches as $item) { 
     foreach ($item[0] as $items) { 
      $query .= "('".$items."'),"; 
     } 
    } 
} 

EDIT:

if(!empty($matches)) 
{ 
    foreach ($matches[0] as $item) { 
     $query .= "('".$item."'),"; 
    } 
} 

Зависит от того, как вы получаете матчи.


$query = rtrim($query,","); 
$result = mysql_query($query); 

Таким образом, вы получите этот запрос:

INSERT INTO table (col1) VALUES ('2 Sentence text here'), ('3 Sentence text here'), ('4 Sentence text here'), ('5 Sentence text here') 

Что является допустимым способом вставить несколько значений в одном столбце с помощью одного оператора INSERT.

Примечание:Please, don't use mysql_* functions in new code. Они больше не поддерживаются and are officially deprecated. См. red box? Узнайте о prepared statements вместо этого, и используйте PDO или MySQLi - this article поможет вам решить, какой. Если вы выберете PDO, here is a good tutorial.

+0

Обратите внимание, что если его массив $ matches пуст, это приведет к сбою. –

+0

Легко исправить @DanyCaissy. –

+0

Я не получаю ничего вставленного и никаких ошибок –

Смежные вопросы