2017-02-22 2 views
-1

У меня есть массив, как:Как вставить массив в SQL с помощью PHP?

$arrays = array(
array('id' => '1','Name' => 'Monica','online' => '1'), 
array('id' => '2','Name' => 'Jessica','online' => '1') 
); 

I включены только 2, но, скажем, у меня есть 200 из них. У меня уже есть таблица в SQL со связанными столбцами id, name и online.

Вы можете помочь мне ввести их в базу данных? Я разрабатываю Wordpress. От Insert array into MySQL database with PHP У меня есть идея, как это сделать для одного одиночного массива

+1

@neophyte, что с редактированием здесь? http://stackoverflow.com/review/spected-edits/15294715 он явно опровергает вопрос, с чем они смотрели и, вероятно, пытались. –

ответ

2

Если у вас есть массив, вам нужно использовать цикл foreach, чтобы узнать длину содержимого вставки.

Это пример вставки:

if(is_array($array)){ 

    $sql = "INSERT INTO some_table (id, name, online) values "; 

    $valuesArr = array(); 
    foreach($array as $row){ 

     $id= (int) $row['id']; 
     $email = mysql_real_escape_string($row['name']); 
     $name = mysql_real_escape_string($row['online']); 

     $valuesArr[] = "('$id', '$email', '$name')"; 
    } 

    $sql .= implode(',', $valuesArr); 

    mysql_query($sql) or exit(mysql_error()); 
} 
1

Пожалуйста, попробуйте это.

Используя пример

$sql = <<<EOT 
INSERT IGNORE INTO 
     table_name (id, name, online) 
    VALUES 
     (:id, :name, :online) 
; 
EOT; 
define("INSERT_UPDATE_SQL", $sql,true); 


try{ 

    $con = new PDO(CONNECTION_STRING); 

    if(is_array($arrays)){ 

     $stmt = $con->prepare(INSERT_UPDATE_SQL); 
     $stmt->bindParam(':id', $id); 
     $stmt->bindParam(':name', $name); 
     $stmt->bindParam(':online', $online); 

     foreach($arrays as $row){ 
      $id = (int)$row['id']; 
      $name = $row['Name']; 
      $online = $row['online']; 

      $stmt->execute(); 
     } 
     $stmt = null; 
    } 

    $con = null; 
}catch (PDOException $e) { 
    echo 'error !!'; 
    throw $e; 
} 

PDO не изменилось, если уже зарегистрированы.

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

  • Нет связанных вопросов^_^