如何将不同的逗号分隔值插入mysql中的不同列

Posted

技术标签:

【中文标题】如何将不同的逗号分隔值插入mysql中的不同列【英文标题】:how to insert different comma separated values into different coloumns in mysql 【发布时间】:2013-11-18 08:55:16 【问题描述】:

我从不同的coloumn(supplierrouteallocation:1000,1200 and routesymbol:10xx,12xx)的数据库中获取两个逗号分隔的值,我想将此值插入到另一个表中的不同列中,例如像这样

route    symbol

1000     10xx

1100     11xx

但我试过它不工作任何人都可以帮助我。谢谢

我的代码

$routes = explode(",",$supplierrouteallocation);
$symbol = explode(",",$routesymbol);

$count=count($routes,$symbol);
for($i=0;$i<$count;$i++)


$sql_insertroute="INSERT INTO `fms`.`routestable` (
    `id` ,  

`route` 
`routesymbol`       
)
VALUES (NULL ,'$routes[$i]','$symbol[$i]')
";

mysql_query($sql_insertroute);


【问题讨论】:

Please, stop using mysql_* functions 在新代码中,它们是officially deprecated。而不是,查看prepared statements,并使用Mysqli 或PDO。 route 后缺少逗号。但是您应该知道,可能有一条错误消息说是这样,您忘记与我们分享。 【参考方案1】:

你有各种各样的错误:

count() 只接受一个数组 您的请求中缺少昏迷:('id', 'route'[,] 'routesymbol')

这是一段适合你的代码:

// get data
$routes = explode(",",$supplierrouteallocation);
$symbols = explode(",",$routesymbol);

// prepare the request
$sql_insertroute = "INSERT INTO `fms`.`routestable` (`id`, `route`, `routesymbol`) VALUES ";

// create an insert line per data couple
$vals = array();
$n = max(count($routes), count($symbols));
for($i=0;$i<$n;$i++) 
    $route = isset($routes[$i]) ? "'".$routes[$i]."'" : "NULL";
    $symbol = isset($symbols[$i]) ? "'".$symbols[$i]."'" : "NULL";
    array_push($vals, "(NULL, $route, $symbol)");


// join those lines with comas, and add'em to the request
$sql_insertroute .= implode(', ', $vals);

【讨论】:

感谢您的回复我尝试了您的一段代码,它在 array_push($vals, "(NULL, $route, $symbol)"; 附近显示语法错误; 对不起,我错过了一个右括号:array_push($vals, "(NULL, $route, $symbol)"); 您正在运行查询吗? (如果你看的话,我没有把最初的mysql_query($sql_insertroute); 放在我的代码中)【参考方案2】:

试试这个

$sql_insertroute="INSERT INTO `fms`.`routestable` (`id`,`route`,`routesymbol`) VALUES (NULL,'".$routes[$i]."','".$symbol[$i]."')";

【讨论】:

以上是关于如何将不同的逗号分隔值插入mysql中的不同列的主要内容,如果未能解决你的问题,请参考以下文章

通过连接来自不同列的逗号分隔值来创建字符串

如何将表中列中的逗号分隔值放入 SQL IN 运算符?

如何分隔不同列中的多项选择短语(谷歌表单)?

列中的重复值

匹配列中的逗号分隔值

如何根据oracle plsql中列中的逗号分隔值拆分选择查询行