php把数组写入mysql的方法

在提交页面有三个值,id当前页面id ,catid当前页面所在栏目,ly这个值是一个有多个。
id 15
catid 2
ly 12,15,20,30,35
正常情况写入表后是
id catid ly
15 2 12
15 2 15
15 2 20

写入表时如果ly是一个值可以写入,如果ly是多个值,请问怎么写入mysql呢?

您好,您可以参考如下代码:

<?php


/* 获取HTML表单提交的数据 */

$id = _POST["id"];
$catid = _POST["catid"];
$ly = array("data***");


/* 连接数据库,如果出错显示消息结束程序,否则继续执行数据库命令 */
$con = mysql_connect("127.0.0.1","user","password");
if($con == false)
{
echo "错误:系统数据库连接失败!错误信息:".mysql_error($con);
exit();
}else{
/* 选择需要操作数据库 */
mysql_select_db("mydb",$con);

/* 根据ly数组的长度决定执行多少次SQL语句 */
for($i=0;$i<count($ly);$i++)
{
/* 设置SQL查询语句 */
$sql = "INSERT INTO `biaoge` VALUES('{$id}','{$catid}',".$ly[$i].")";

/* 如果SQL语句执行失败,返回错误代码; */
if(mysql_query($sql,$con) == false)
{
echo "数据库查询出错!错误代码:".mysql_errno($con);
mysql_close($con);
exit();
}
}

mysql_close($con);
echo "记录添加成功!";


}




?>

至于遍历数组,有很多种方式,如楼上用的foreach语句也是可以的。这里用for的原因是为了方便提问者理解。如果代码仍有不足或不明白的地方,请您继续追问,直到给您一个满意的答复为止~

追问

还是只能写进去一条是为什么呢?

追答

您好,请问您的$ly变量是否指向一个数组,并且有多个值?

追问

是的,有多个值

追答

您好,请问您那边的代码是怎么写的?为什么只能写进一条?

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-01-30

这个不难,把字符串变成数组,然后再循环一下这个数组,拼接成sql语句执行就行了,可以这么写

$id = 15;
$catid = 2;
$ly = '12,15,20,30,35';
$ly = explode(',', $ly);
$sql = 'insert into table (id,catid,ly) values (';
foreach ($ly as $value) {
$sql .= $value . ',';
}
$sql = rtrim($sql, ',') . ')';

希望对你有帮助

追问

循环这一块不太懂,能不能给讲讲呢,谢谢大神

追答

代码例子都给你了,你自己看着理解一下呗

本回答被网友采纳
第2个回答  2019-01-30
12,15,20,30,35 就这么写啊,用逗号连接成字符串写进去。追问

你没看清题目

第3个回答  2019-02-20
将数组转为字符串,可以用implode(',',$array);追问

就是往表里写的时候不知道怎么写进去

追答

转换为字符之后,可以直接用sql语句插入,insert into tablename (field)values ('$string')

php把数组写入mysql的方法
php\/* 获取HTML表单提交的数据 *\/$id = _POST["id"];$catid = _POST["catid"];$ly = array("data***");\/* 连接数据库,如果出错显示消息结束程序,否则继续执行数据库命令 *\/$con = mysql_connect("127.0.0.1","user","password");if($con == false){echo "错误:系统数据库连...

求php 批量把数组写入mysql表
sql = 'insert into table_name (mingcheng, shijian) values ';foreach ($Codes as $key => $value) {$sql .= '(\\''.$value.'\\' , \\''.now().'\\')';if($key < count($Codes)-1){$sql .= ',';}else{$sql .= ';';}} ...

php中一个二维数组,怎么吧数组中的数据作为value插入到数据库某个表中...
或者一次性生成表然后插入,需要尽量保证表结构一致 str = "insert into users ("for($i = 0; $i < 66; $i++){ $str .= "select ".array[$i]['user_id']." as user_id,".array[$i]['name']."as name";}$str .= ")";mysql_query($str)...

PHP怎么把数组数据存到Mysql里?
把$new写进数据库就行啦

PHP代码问题: array数组内数据如何导入到mysql数据库
很简单啊,简单的处理下二维数组,生成单个的字符窜 首先实在不明白 你看看sql:insert into 插入多条语句 前面是字段 后面是数据对应好了 放在循环里 一条一条 插入就好了

PHP如何将下面数组遍历,插入数据库
有两个方法可供选择,一种是把数据存入csv文件,然后执行load data infile 还有一种就是类似于sql server里面的bulk insert,使用insert语句插入批量数据,结合PHP的implode函数,可以很简单的实现大批量数组数据的一次性插入。[php] view plaincopy statement = "INSERT INTO table (title, type, customer...

php循环插入数据到mysql问题。。完成此问题小弟倾家荡产了
虽然不太确定你的问题,提供下我的想法吧。。。换句话说,一切操作以数组来循环的。那循环次数就是数组的长度;循环执行SQL语句,语句里的内容,是由循环索引决定;for($i : $shuzu){ sql=mysql_query("INSERT INTO test (aid,typeid,username,shuzu) Value('1','2','3',`shuzu[$i]`)")...

PHP中怎样将数组中的数提交到数据库
values = array('isbn'=>'0-672-31509-8','author'=>'王一','title'=>'php高级编程','price'=>58.00);sql = sprintf('INSERT INTO %s (%s) VALUES ("%s")', 'books',implode(', ', array_map('mysql_escape_string', array_keys($values))),implode('", "',array_map('...

怎么往mysql中写入数据?
1、首先打开MYSQL的管理工具,新建一个test表,并且在表中插入两个字段。2、接下来在Editplus编辑器中创建一个PHP文件,进行数据库连接,并且选择要操作的数据库。3、然后通过mysql_query方法执行一个Insert的插入语句。4、执行完毕以后,回到数据库管理工具中,这个时候你会发现插入的中文乱码了。5、接...

如何通过PHP将excel的数据导入MySQL中
就执行导入excel操作{require_once ‘phpExcelReader\/Excel\/reader.php';$data = new Spreadsheet_Excel_Reader();$data->setOutputEncoding(‘utf-8′);\/\/设置在页面中输出的编码方式,而不是utf8\/\/该方法会自动判断上传的文件格式,不符合要求会显示错误提示信息(错误提示信息在该方法内部)...

相似回答