首頁>Web>source

請我想知道是否有可能使用一个sql查詢使用php中的陣列插入多个列和行中
$sql = "INSERT INTO MyGuests (firstname, lastname, email) <br> VALUES ('John', 'Doe', '[email protected]');";
但我想將陣列中的列名表示為陣列,然後將值表示為陣列值,這在php中看起来像這樣
$sql = "INSERT INTO myguest (array(firstname => 'john'));

最新回復
  • 2020-5-27
    1 #

    根据MySQL手册,這不是公认的SQL語法.您必须

     插入MyGuests
             (名:姓:電子郵箱)
     值(" John"," Doe"," [email protected]")
    

    但是,這是擴充套件範圍,远远超出了您的問题範圍,如果您拥有這些資訊的陣列,則可以遍歷整个過程来構建SQL字元串。

     //資訊陣列
     $ guests = array(
         陣列(
             'first_name'=>'John',
             'last_name'=>'Doe',
             '電子郵件'=>'[email protected]',
         ),
         陣列(
             'first_name'=>'Jane',
             'last_name'=>'Doe',
             '電子郵件'=>'[email protected]',
         ),
     );
     //構建SQL字元串
     $ sql ='';
     foreach($ guests as $ g){
         if($ sql!='')$ sql。=',';
         $ sql。='("'。$ g ['first_name']。'","'。$ g ['last_name']。'","'。$ g ['email']。'")'';
     }
     if($ sql!=''){
         $ sql ="在MyGuests(名字,姓氏,電子郵件)中插入VALUES". $ sql;
     }
     // $ sql現在為空或有很多要插入的記錄。
    

  • 2020-5-27
    2 #

    我使用上面的描述来找到一種更好,更簡單的方法,而無需使用陣列,即使您可能想使用陣列,它看起来也一樣。

    下面是代碼

    $column = '(firstname, lastname, email)';  // here i can choose any column i wish
    $value = "
        ('John', 'Doe', '[email protected]'),
        ('Jane', 'Doke', '[email protected]'),
        ('John3', 'Doe3', '[email protected]'),
        ('Jane4', 'Doke4', '[email protected]')
         ";
    
    $sql = "INSERT INTO a_boy ". $column . " VALUES ". $value; 
    

    這会將四行資料插入到名為a_boy的資料庫表中,因此我只能將值擴充套件為希望插入的行數和详细資訊,因此這使得我的代碼簡單易用,因為 目標是使用一个查詢插入许多列和许多行。

  • drupal:不允许序列化"關闭"
  • wordpress:在帖子頁面上顯示共同作者