0

我正在阅读 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 变量。有人可以向我解释它的目的吗?

4

3 回答 3

0

这是一种仅在值之间使用逗号的方式,VALUES('like','this','and','this') 因为$pref第一次它的值仍然设置为“”,并且键附加到$query它们将始终在值之前有一个逗号,除了第一个值:

    $query .= $pref . $key;
    $pref = ", ";
于 2013-03-14T21:35:53.123 回答
0

代码中的愚蠢错误

$query = "INSERT INTO" . $table . " (";

INTO后需要空格

$query = "INSERT INTO " . $table . " (";
$query .= ") VALUES (";
$query  .= ");";
于 2013-03-14T21:36:44.843 回答
0

您还可以使用 implode() 函数http://php.net/manual/en/function.implode.php从 $arr 数组创建一个字符串!

  implode(", ", array_keys($arr)); 
于 2013-03-14T21:49:43.927 回答