字符串分割问题,数据insert问题,恢复问题!

zunyir 2005-12-09 03:15:51
table(wwww)结构bs1,bs2,bs3,bs4,bs5,bs6,bs7,bs8,bs9,bs10,bs11
字串结构:$date="xxxx", "xxx", "xxx,xxx", "1", "3", "3", "", "0", "6", "66", "rrr",
这是我保存的文本文件中一行的内容
我想把它们插入wwww中,我用的是
$piece=explode(",",$date);
但根本就不对,我是想两个引号中的数据为一组,请教一下该怎么做啊。我用的是mssql数据库
文件名为dd.txt,有80多m。
...全文
163 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zunyir 2005-12-12
  • 打赏
  • 举报
回复
呵呵,这个不用教!
:)
但我的数据中有这种格式
"xxx","ss"sdfsd"ss","yyy"……
一碰到这种就报错!有没有好点的解决方法啊!万分感谢!
xuzuning 2005-12-12
  • 打赏
  • 举报
回复
怎么?去掉最后一个逗号还要教你吗?
$date = substr($date, 0, -1);
indexroot 2005-12-12
  • 打赏
  • 举报
回复
去掉最后的逗号
$data=substr($data,0,strlen($data)-1);
象宇 2005-12-09
  • 打赏
  • 举报
回复
先把,字符串最後的逗号去掉啊
zunyir 2005-12-09
  • 打赏
  • 举报
回复
可是最后还有一个逗号啊
:(
xuzuning 2005-12-09
  • 打赏
  • 举报
回复
如果你的数据库接受有双引号括起的值,那么sql串写作
"insert into wwww (bs1,bs2,bs3,bs4,bs5,bs6,bs7,bs8,bs9,bs10,bs11) values (".$date.")";
即可得到
insert into wwww (bs1,bs2,bs3,bs4,bs5,bs6,bs7,bs8,bs9,bs10,bs11) values ("xxxx", "xxx", "xxx,xxx", "1", "3", "3", "", "0", "6", "66", "rrr")
这样的结果

如果你的数据库只接受单引号括起的值,那么sql串写做
"insert into wwww (bs1,bs2,bs3,bs4,bs5,bs6,bs7,bs8,bs9,bs10,bs11) values ('".
join("','", eval('return array('.$date.');'))."')";
即可得到
insert into wwww (bs1,bs2,bs3,bs4,bs5,bs6,bs7,bs8,bs9,bs10,bs11) values ('xxxx', 'xxx', 'xxx,xxx', '1', '3', '3', '', '0', '6', '66', 'rrr')
这样的结果
zalvsa 2005-12-09
  • 打赏
  • 举报
回复
table(wwww)结构bs1,bs2,bs3,bs4,bs5,bs6,bs7,bs8,bs9,bs10,bs11
字串结构:$date="xxxx", "xxx", "xxx,xxx", "1", "3", "3", "", "0", "6", "66", "rrr",

你要插入的数据是XXXXX,还是"xxxxx"?
如果是要后者,SQL那么写会出错,你只要对数组的值进行处理就可。
即:
$sql="insert into datedaoru(bs1,bs2,bs3,bs4,bs5,bs6,bs7,bs8,bs9,bs10,bs11) VALUES(
$piece[0],$piece[1],$piece[2],$piece[3],$piece[4],$piece[5],$piece[6],$piece[7],$piece[8],$piece[9],$piece[10])";
对$piece[0]进行addslashes($piece[0])再插入。
如果是XXXXXX
则要进行替换把""替换掉
$piece[0]=str_replace("\"","",$piece[0]);
hope1983 2005-12-09
  • 打赏
  • 举报
回复
你的思路都是错的.

$sql="insert into datedaoru(bs1,bs2,bs3,bs4,bs5,bs6,bs7,bs8,bs9,bs10,bs11) VALUES($date)";
直接这样都可以了,因为你的$date已经符合了SQL规范...

你应该要面对的是如何将80M的数据,分拆成: $date 这样的形式.之后可用循环插入.这样才能解决问题.
leakey8 2005-12-09
  • 打赏
  • 举报
回复
$date='"xxxx", "xxx", "xxx,xxx", "1", "3", "3", "", "0", "6", "66", "rrr",';
preg_match_all('/"([^"]*)?"/',$date,$match) ;
insert into wwww values($match[1][0],$match[1][1],...........,match[1][10])
zunyir 2005-12-09
  • 打赏
  • 举报
回复
$sql="insert into datedaoru(bs1,bs2,bs3,bs4,bs5,bs6,bs7,bs8,bs9,bs10,bs11) VALUES(
$piece[0],$piece[1],$piece[2],$piece[3],$piece[4],$piece[5],$piece[6],$piece[7],$piece[8],$piece[9],$piece[10])";

我想的是这么插入!
hope1983 2005-12-09
  • 打赏
  • 举报
回复
不明白你想做什么..
分割后的$piece是数组.你是怎样可以插入???

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧