Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php在mysql中插入多个值_Php_Mysql - Fatal编程技术网

如何使用php在mysql中插入多个值

如何使用php在mysql中插入多个值,php,mysql,Php,Mysql,我有一个mysql表'persons',有3列,如下所示: Name Salary Profession 我使用php get方法发送3个参数和值,如下所示: $name = raj|lokesh|amar $salary = 10000|20000|30000 $job = telecom|marine|shipyard 我必须将其插入“人员”表中 Name Salaray Profession raj 10000 telecom lokesh

我有一个mysql表'persons',有3列,如下所示:

Name   Salary  Profession
我使用php get方法发送3个参数和值,如下所示:

 $name = raj|lokesh|amar
 $salary = 10000|20000|30000
 $job = telecom|marine|shipyard
我必须将其插入“人员”表中

Name     Salaray  Profession

raj      10000     telecom
lokesh   20000     marine
amar     30000     shipyard

有人能告诉我怎么做吗?

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

<?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]')");

}
尝试使用

$names = explode("|", $name);
$salaries = explode("|", $salary);
$professions = explode("|", $profession);
然后在数组($names、$salaries、$professionals)中循环以将值插入数据库中。 像这样

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

可以使用函数将字符串转换为数组。 您当然可以在您的案例中使用这个,使用我的小演示:

$name = "raj|lokesh|amar";
$salary = "10000|20000|30000";
$job = "telecom|marine|shipyard";
您只需设置变量。 现在将它们转换为分解的
数组:

$name = explode("|", $name);
$salary = explode("|", $salary);
$job = explode("|", $job);
基本上,您需要获取字符
|
之间的所有单词,并将每个单词转换为一个数组项,这样每个单词都有自己的索引

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

现在,您必须通过这些数组循环并将其插入查询:

for ($i = 0; $i < count($name); $i++) {
    echo $name[$i];
}
for($i=0;$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]
    );
}
for($i=0;$iprepare(“插入表(名称、薪资、职业)值(:名称、薪资、职务)”);
$query->execute(数组)(
“:name”=>$name[$i],
“:salary”=>$salary[$i],
“:jobs”=>$jobs[$i]
);
}

+用于PDO。请在使用mysqli时编写相应的代码。@AlexanderMP难道mysqli的设计不一样吗?两者都有相同的方法名用于prapering、executing,都可以是对象。是的,但是复制/粘贴提到mysqli不会有什么坏处,你说呢?我的意思是,我很欣赏这个答案,但要从任何人那里得到更多的赞赏还有,你必须编写一个更完整的解决方案。其中一些可能最终成为人们从搜索引擎点击的页面,并作为“如何做事”的指南。我感到非常惊讶,关于StackOverflow的答案将包含使用过时功能的建议,PHP的作者警告我们不要使用这些建议。“从PHP 5.5.0开始,这个扩展就被弃用了,将来会被删除。”我们都知道,但不管你告诉他们多少次,人们都不会听你的,顺便说一句,我感谢你的否决票。
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]
    );
}
//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;