如何使用php在mysql中插入多个值
我有一个mysql表'persons',有3列,如下所示:如何使用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
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.' '.$salary.' '.$job.'';
}
}
echo $personsList;