php - 从php数组插入sqlite行
问题描述
所以我正在尝试编写一个通用的sqlite插入,无论一行有多少项目都可以使用。这是针对单行的,假设除 ID(设置为自动递增整数)之外的所有列都已分配,并且必须使用 bindparam。我一直在尝试这样:
Table Quarterbacks
ID---firstName---lastName
public static function insert($table, $values)
{
$pdo = new PDO('sqlite:testTable.sqlite');
$inputString = implode(",", $values);
$statement = $pdo->prepare("insert into $table values (:value)");
$statement->bindParam(':value', $inputString);
$statement->execute();
}
$new = array("Steve", "Young");
Query::insert("Quarterbacks", $new);
这个想法是该表现在将添加一个新行,增加 ID,并添加 Steve Young。但是我得到了准备语句是错误的一般错误。我知道我的 pdo 正在连接到数据库,因为其他测试方法有效。那里有很多与数组相关的线程,但似乎它们比我想要做的要复杂得多。我很确定它与将单个字符串视为无效有关,但它也不会将字符串数组作为值。
编辑:我开始倾向于像 bash 这样的折衷方案,即提供大量但不是无限量的函数参数。也对 ...$ 风格开放,但我觉得这最终会遇到与现在相同的问题。
我能够让它工作
$name = "('daunte' , 'culpepper')";
$cats = "('firstName', 'lastName')";
$statement = $pdo->prepare("insert into $table" .$cats ." values" .$name);
$statement->execute();
但不是这个
$name = "('reggie' , 'wayne')";
$cats = "('firstName', 'lastName')";
$statement = $pdo->prepare("insert into $table:cats values:name");
$statement->bindParam(':cats', $cats);
$statement->bindParam(':name', $name);
$statement->execute();
解决方案
推荐阅读
- scala - 如何将 spark 数据帧的每一行写入不同的 Hive 表(使用 Scala)?
- java - 如何在数组或列表中添加矩阵的行数和列数
- java - 内容小时将按钮固定在屏幕底部,如果内容大到足以占据整个屏幕,则将按钮固定在内容底部
- javascript - 为什么 javascript 看不到 style.filter 属性?
- dart - Dartlang 确实函数可以获取参数
- kubernetes - 如何在 kubernetes yaml 文件的环境变量中分配集群、命名空间和 pod 名称
- android - 如何获取可拖动标记的坐标 Google Maps Android API v2
- ruby-on-rails - Rspec不处理获取请求的参数
- android - 如何使用 SharedPrefences 保存倒数计时器?
- python - 如何在 python 中从 Elementtree 访问曾孙元素?