【问题标题】:How to insert the multiple values in mysql using php如何使用php在mysql中插入多个值
【发布时间】:2013-10-05 19:13:07
【问题描述】:

我有 3 列的 mysql 表 'persons',

Name   Salary  Profession

我正在使用 php get 方法发送 3 个带有值的参数,

 $name = raj|lokesh|amar
 $salary = 10000|20000|30000
 $job = telecom|marine|shipyard

我必须将它们插入 'persons' 表中,

Name     Salaray  Profession

raj      10000     telecom
lokesh   20000     marine
amar     30000     shipyard

谁能告诉我该怎么做?

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    您可以使用explode 函数将字符串转换为数组。 您当然可以在您的情况下使用它,使用我的小演示:

    $name = "raj|lokesh|amar";
    $salary = "10000|20000|30000";
    $job = "telecom|marine|shipyard";
    

    您只需设置变量。 现在把它们变成exploded 数组:

    $name = explode("|", $name);
    $salary = explode("|", $salary);
    $job = explode("|", $job);
    

    你基本上想要获取字符|之间的所有单词并将每个单词转换为一个数组项,因此每个单词都有自己的索引。

    现在,$name[0](第一个数组索引),

    echo $name[0]; // echoes 'raj'
    echo $name[1]; // echoes lokesh'
    echo $job[3]; // echoes 'shipyard';
    

    现在你必须遍历这些数组并将其插入到查询中:

    for ($i = 0; $i < count($name); $i++) {
        echo $name[$i];
    }
    

    所以最终解决方案将如下所示:

    for ($i = 0; $i < count($name); $i++) {
        $query = $pdoObject->prepare("INSERT INTO table (name, salary, profession) VALUES (:name, :salary, :jobs)");
        $query->execute(array(
            ":name" => $name[$i], 
            ":salary" => $salary[$i], 
            ":jobs" => $jobs[$i]
        );
    }
    

    【讨论】:

    • + 用于 PDO。请写出使用mysqli的等价物。
    • @AlexanderMP mysqli的设计不一样吗?两者都有相同的方法名称来执行,执行,都可以是对象。
    • 是的,但是复制/粘贴提及 mysqli 不会有什么坏处,你不是说吗?我的意思是我很欣赏这个答案,但是为了得到其他人的更多赞赏,你必须编写一个更完整的解决方案。其中一些可能最终成为人们从搜索引擎点击的页面,并作为“如何做事”的指南。
    【解决方案2】:

    这不是一个直接的答案,因为您没有向我们展示任何代码。 试试这样的。

    <?php
    $name = "raj|lokesh|amar";
    $salary = "10000|20000|30000";
    $job = "telecom|marine|shipyard";
    
    $name = explode("|",$name);
    $salary=explode("|",$salary);
    $job=explode("|",$job);
    
    for($i=0;$i<count($name);$i++)
    {
        $q = mysql_query("INSERT INTO `yourtable` VALUES ('$name[$i]','$salary[$i]','$job[$i]')");
    
    }
    

    【讨论】:

    • 令我大吃一惊的是,StackOverflow 上的答案包含使用过时功能的建议,PHP 的作者警告我们不要使用这些功能。 php.net/manual/en/function.mysql-query.php "此扩展自 PHP 5.5.0 起已弃用,将来将被删除。"
    • 我们都知道,但无论你告诉他们多少次,人们都不会听,顺便说一句,我很感谢你的反对。
    【解决方案3】:

    尝试使用

    $names = explode("|", $name);
    $salaries = explode("|", $salary);
    $professions = explode("|", $profession);
    

    然后循环遍历数组($names、$salaries、$professions)以在数据库中插入值。 http://php.net/manual/fr/function.explode.php

    【讨论】:

      【解决方案4】:

      这样

      INSERT INTO `persons`(`Name`, `Salaray`, `Profession`) values('raj', '10000','telecom'),('lokesh', '20000','marine'),('amar', '30000','30000')
      

      【讨论】:

        【解决方案5】:
        //ASSIGN THE VARIABLES TO INSERT
            $name= '';
            $salary='';
            $job='';
        //INSERT DATA INTO DATABASE
            $Input = mysql_query('INSERT INTO persons (name, salary, profession) VALUES ($name, $salary, $job)');
        //SEARCH FOR PERSONS
            $output= mysql_query('SELECT * FROM persons ORDER BY id ASC');
            $personsCount = mysql_num_rows($output); //count output amount
        //LOOP PERSONS OUTPUT
            if($personsCount > 0){
                while($row=mysql_fetch_array($output)){
                        $id = $row['id'];
                    $name = $row['name'];
                    $salary = $row['salary'];
                    $job = $row['job'];
        
            $personsList .=  $name.'&nbsp;'.$salary.'&nbsp;'.$job.'';
            }
        }
        
        echo $personsList;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-04-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多