使用内爆在sqlite中插入多行[重复]

Posted

技术标签:

【中文标题】使用内爆在sqlite中插入多行[重复]【英文标题】:inserting multiple rows in sqlite using implode [duplicate] 【发布时间】:2013-05-15 10:43:38 【问题描述】:

我尝试插入多行,但在数据库中出现空行和其他错误。 所以,尝试使用 implode(作为更好的选择?)但这里肯定做错了。

$sql = array(); 
    foreach($_POST as $key => $value ) 
        $sql[] = '("'.sqlite_escape_string($key['cust_name']).'", '.$key['address'].')';
    

    $stmt = $db->prepare('INSERT INTO customers VALUES (cust_name, address) '.implode(','. $sql));
    $stmt->execute($sql); 

【问题讨论】:

不确定您是否可以使用PDO 进行此类准备工作。如果可以,您将需要更多代码。 啊哈,那我应该怎么做呢,接近这个了? 可能会进行搜索,因为这个有多个问题...PDO Prepared Inserts multiple rows in single query 【参考方案1】:

执行以下操作会更好吗?

<?php

$into = "";
$values = "";

$cnt = 0;
$post_cnt = count($_POST);
foreach($_POST as $key => $value) 
    $into .= sqlite_escape_string($key).($cnt < $post_cnt && $post_cnt > 1 ? ", ": "");
    $values .= "'".sqlite_escape_string($value)."'".($cnt < $post_cnt && $post_cnt > 1 ? ", ": "");
    $cnt++;

$sql = "INSERT INTO customers (".$into.") VALUES (".$values.");";

$stmt = $db->prepare($sql);
$stmt->execute();

【讨论】:

好的,所以 $into 将是列名,但它们不匹配,所以看不出我应该如何使用它? 顶部的 $into 和 $values 只是声明一个空字符串,您不会填写它们。 $into 由 $_POST 键设置。

以上是关于使用内爆在sqlite中插入多行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在多行插入语句 sqlite 上使用触发器

在 iPhone 上将多行插入 sqlite db 的最快方法

Sqlit--学习教程(简介)

Sqlit--学习教程(命令)

Sqlit--学习教程(建立数据库表)

SQLite3 笔记