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 に答える