PHP 批量入库的疑问.
<?phpclass MyDB extends SQLite3
{
function __construct()
{
$this->open("C:\Users\Desktop\data.db3");
//打开本地数据库文件.
}
}
$db = new MyDB();
if(!$db){
echo $db->lastErrorMsg();
} else {
echo "Opened database successfully\n";
//如果没有报错,返回值提示连接成功.
}
/*=======================方法1===================*/
$stmt = $db->prepare("INSERT INTO foo (id, bar) VALUES (:name, :value)");
/*这里的占位符,能够调用变量实现批量插入么??*/
$name = 1;
$value = `asdasda`;
$stmt->execute();
/*==========================方法2===================*/
$as="James";
$ab="100";
$sql = "INSERT INTO test (name,score) VALUES ('$as','$ab')";
/*=============这里可以调用变量,=======*/
/*=============但是如果改成$as="(James,100),(Andy,120),(Bily,90)" ,然后INSERT INTO test (name,score) VALUES$as; 还是容易插入不了*/
$stmt->execute();
$db->exec($sql);
/*===============================*/
$ret = $db->exec($sql);
if(!$ret){
echo $db->lastErrorMsg();
} else {
echo "Records created successfully\n";
}
$db->close();
?>
把数组变量拆分成('值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()操作,也是上下文找不到实体的类.
调用变量入库 ,出现问题,谁能帮我解决一下??
用预处理语句只能用foreach一条条插入。想实现批量插入就必须拼接sql语句,那样不安全,并且sql语句长度是有限制的,你必须分批组装,比如一次组装100条,条数视你数据大小而言。
页:
[1]