火车采集器软件交流官方论坛

 找回密码
 加入会员
搜索
火车采集器V9版免费下载火车浏览器 - 可视采集,万能群发,全自动脚本工具
查看: 5156|回复: 2

PHP 批量入库的疑问.

[复制链接]
发表于 2016-6-10 14:57:13 | 显示全部楼层 |阅读模式
  1. <?php
  2.    class MyDB extends SQLite3
  3.    {
  4.       function __construct()
  5.       {
  6.          $this->open("C:\Users\Desktop\data.db3");
  7.          //打开本地数据库文件.
  8.       }
  9.    }
  10.    $db = new MyDB();
  11.    if(!$db){
  12.       echo $db->lastErrorMsg();
  13.    } else {
  14.       echo "Opened database successfully\n";
  15.       //如果没有报错,返回值提示连接成功.
  16.    }

  17. /*=======================方法1===================*/
  18. $stmt = $db->prepare("INSERT INTO foo (id, bar) VALUES (:name, :value)");
  19. /*这里的占位符,能够调用变量实现批量插入么??*/
  20. $name = 1;
  21. $value = `asdasda`;
  22. $stmt->execute();
  23. /*==========================方法2===================*/
  24. $as="James";
  25.     $ab="100";
  26.   $sql = "INSERT INTO test (name,score) VALUES ('$as','$ab')";
  27. /*=============这里可以调用变量,=======*/
  28. /*=============但是如果改成$as="(James,100),(Andy,120),(Bily,90)" ,然后INSERT INTO test (name,score) VALUES  $as; 还是容易插入不了*/
  29. $stmt->execute();
  30. $db->exec($sql);  

  31. /*===============================*/
  32.   $ret = $db->exec($sql);
  33.    if(!$ret){
  34.       echo $db->lastErrorMsg();
  35.    } else {
  36.       echo "Records created successfully\n";
  37.         }
  38.    $db->close();
  39. ?>
复制代码


 楼主| 发表于 2016-6-10 14:59:45 | 显示全部楼层
把数组变量拆分成('值1','值2','值3'),('值1','值2','值3'),,('值1','值2','值3'),('值1','值2','值3')
这样的字符串变量-S1.
然后执行sql语句,insert into tbale (列1,列2) values {-var.S1-}; 禁止转义.
这是可以批量入库的. 但是我有个脚本插入数据比较大,这样操作经常报错.
PHP 5.3.0 起默认启用 SQLite3 扩展,我能够连接本地db3文件,开启事务,和创建和插入数据.
但是填入,insert into tbale (列1,列2) values $data;
这样的语句不能实现批量入库,
输入$this->db->insert_batch()操作,也是上下文找不到实体的类.
调用变量入库 ,出现问题,谁能帮我解决一下??
发表于 2016-6-12 11:17:43 | 显示全部楼层
用预处理语句只能用foreach一条条插入。想实现批量插入就必须拼接sql语句,那样不安全,并且sql语句长度是有限制的,你必须分批组装,比如一次组装100条,条数视你数据大小而言。
您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

QQ|手机版|Archiver|火车采集器官方站 ( 皖ICP备06000549 )

GMT+8, 2026-4-6 15:59

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表