我正在浏览nettuts.com上的一篇文章,它是关于构建一个twitter克隆,代码中有一个函数可以对数据库进行标准插入。这是代码
private function insert($table, $arr){
$query = "INSERT INTO" . $table . " (";
$pref = "";
foreach ($arr as $key => $value) {
$query .= $pref . $key;
$pref = ", ";
}
$query .= ") VALUES (";
$pref = "";
foreach ($arr as $key => $value) {
$query .= $pref. "'" . $value . "'";
$pref = ", ";
}
$query = .= ");";
return $this->db->query($query);
}
我无法理解的是$ pref变量。有人向我解释其目的吗?
答案 0 :(得分:0)
这是一种只在VALUES('like','this','and','this')
中的值之间使用逗号的方法
因为$pref
仍然设置为“”第一次它的值而密钥被附加到$query
,所以除了第一个值之外,它们总是会有一个逗号:
$query .= $pref . $key;
$pref = ", ";
答案 1 :(得分:0)
代码中的愚蠢错误
$query = "INSERT INTO" . $table . " (";
INTO之后需要空格
$query = "INSERT INTO " . $table . " (";
$query .= ") VALUES (";
$query .= ");";
答案 2 :(得分:0)
你也可以使用implode()函数http://php.net/manual/en/function.implode.php从$ arr数组创建一个字符串!
implode(", ", array_keys($arr));