【问题标题】:How to insert array value into mysql database?如何将数组值插入mysql数据库?
【发布时间】:2015-06-18 09:57:40
【问题描述】:

我是初学者编程。我尝试将数组值插入 mysql 表中。 这是我的数组:

$responseArray=Array
(
    [0] => Array
        (
            [code] => 9BP3
            [name] => 9Bp No3
        )

    [1] => Array
        (
            [code] => AA
            [name] => Ataria
        )

    [2] => Array
        (
            [code] => AABH
            [name] => Ambika Bhawani Halt
        )

    [3] => Array
        (
            [code] => AADR
            [name] => Amb Andaura
        )

    [4] => Array
        (
            [code] => AAG
            [name] => Angar
        )

    [5] => Array
        (
            [code] => AAH
            [name] => Itehar
        )
)

这里是mysql表结构:

id, code, name

如何使用循环将数组插入到这个表中?

如果数据库表中的行与数组计数不同,那么它将截断表并插入数组。

【问题讨论】:

  • 显示你尝试过的代码
  • 请查看此链接以获取帮助:- stackoverflow.com/questions/779986/…
  • 你知道如何插入一个行吗?那么将它应用于循环中的许多行有什么问题?另外,我不知道你最后一句话想说什么。什么时候为什么要截断什么?
  • deceze@First 检查数据库中已有多少行,并与数组计数进行比较。如果两个值不同,则截断表并将数组值插入数据库。
  • 其他几个网站也有同样的问题,看来这张海报采用了霰弹枪的方法......

标签: php mysql arrays loops


【解决方案1】:

这是一个非常基本的手工制作 SQL 查询的示例:

$aValues = array();
// Don't forget to protect against SQL injection :)
foreach($responseArray as $row){
    $aValues[] = '("'.$row['code'].'","'.$row['name'].'")';
}
$sql = 'INSERT INTO table (code, name) VALUES '.implode(',',$aValues).';';

当然,这一切都取决于您可能使用的 MySQL 驱动程序/DAL(例如 PDO 会更好学习,但对于初学者来说可能更难)。

【讨论】:

    【解决方案2】:
    foreach($responseArray as $individual_data)
    {
       //Assign the values
       $name = $individual_data['name'];
       $code = $individual_data['code'];      
    
       //Insert into the DB
       mysql_query("insert into table_name (code,name) values ('".$code."','".$name."')",$conn);
    
    }
    

    【讨论】:

    • 请不要使用mysql_函数。请改用 mysqli_。见:Why shouldn't I use mysql_* functions in PHP?
    • 这段代码不仅使用了已弃用的 mysql 扩展,还对 SQL 注入开放。使用不推荐使用的扩展而不转义输入是一个非常糟糕的主意!
    猜你喜欢
    • 2014-07-21
    • 2016-11-29
    • 1970-01-01
    • 2016-05-26
    • 2018-10-17
    • 2014-04-26
    • 1970-01-01
    • 2023-03-13
    • 2011-07-05
    相关资源
    最近更新 更多