首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用php将数组数据插入到mysql中

如何使用php将数组数据插入到mysql中
EN

Stack Overflow用户
提问于 2013-02-22 06:11:18
回答 3查看 107K关注 0票数 22

目前我有一个数组,当通过print_r()输出时,它看起来像下面这样;

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [R_ID] => 32
            [email] => a@a.com
            [name] => Bob
        )

    [1] => Array
        (
            [R_ID] => 32
            [email] => b@b.com
            [name] => Dan
        )

    [2] => Array
        (
            [R_ID] => 32
            [email] => c@c.com
            [name] => Paul
        )

    [3] => Array
        (
            [R_ID] => 35
            [email] => d@d.com
            [name] => Mike
        )  
)

我想将这些数据插入到一个表中,每个元素值都属于它各自的字段。

目前,我的php代码如下所示

代码语言:javascript
复制
if(is_array($EMailArr)){
    foreach($EMailArr as $R_ID => $email => $name){

    $sql = "INSERT INTO email_list (R_ID, EMAIL, NAME) values ('$R_ID', '$email', '$name')";
    mysql_query($sql) or exit(mysql_error()); 
    }
}

*注意: R_ID不是本表的主键。*

有人能帮我理解一下我该如何处理这种情况吗?感谢您的阅读和帮助!

致以问候。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-22 06:21:35

我会避免对每个条目进行查询。

代码语言:javascript
复制
if(is_array($EMailArr)){

    $sql = "INSERT INTO email_list (R_ID, EMAIL, NAME) values ";

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

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

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

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

    mysql_query($sql) or exit(mysql_error()); 
}
票数 34
EN

Stack Overflow用户

发布于 2013-02-22 06:14:51

代码语言:javascript
复制
if(is_array($EMailArr)){
    foreach($EMailArr as $key => $value){

    $R_ID = (int) $value['R_ID'];
    $email = mysql_real_escape_string( $value['email'] );
    $name = mysql_real_escape_string( $value['name'] );

    $sql = "INSERT INTO email_list (R_ID, EMAIL, NAME) values ('$R_ID', '$email', '$name')";
    mysql_query($sql) or exit(mysql_error()); 
    }
}

使用PDO的更好的示例解决方案:

代码语言:javascript
复制
 $q = $sql->prepare("INSERT INTO `email_list` 
                     SET `R_ID` = ?, `EMAIL` = ?, `NAME` = ?");

 foreach($EMailArr as $value){
   $q ->execute( array( $value['R_ID'], $value['email'], $value['name'] ));
 }
票数 1
EN

Stack Overflow用户

发布于 2018-06-05 19:00:30

我有一个帮助插入数组到MySQL数据库的PHP库。通过使用它,您可以创建、更新和删除。您的数组键值应与表列的值相同。只需为create操作使用单行代码

代码语言:javascript
复制
DB::create($db, 'YOUR_TABLE_NAME', $dataArray);

其中$db是您的数据库连接。

类似地,您可以使用它进行更新和删除。Select操作即将可用。Github下载链接:https://github.com/pairavanvvl/crud

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15013211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档