php数据库插入函数

php数据库插入函数,php,sql,Php,Sql,我正在浏览nettuts.com上的一篇文章,这篇文章是关于构建一个twitter克隆的,代码中有一个函数,可以在数据库中进行标准插入 private function insert($table, $arr){ $query = "INSERT INTO" . $table . " ("; $pref = ""; foreach ($arr as $key => $value) { $query

我正在浏览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变量。有人能解释一下它的用途吗?

这是一种在
值('like'、'this'、'and'、'this')中的值之间只使用逗号的方法。
由于
$pref
第一次作为值时仍设置为“”,并且键被附加到
$query
中,因此除了第一个逗号外,它们的值前始终有一个逗号:

    $query .= $pref . $key;
    $pref = ", ";

代码中的愚蠢错误

$query = "INSERT INTO" . $table . " (";
需要空间后进入

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

您还可以使用introde()函数从$arr数组创建字符串

  implode(", ", array_keys($arr)); 

这是一种非常不寻常但非常有用的方法,可以在列表中的参数之间放置逗号,而不以逗号开头或结尾。它将逗号添加到每个元素的前面,但第一个元素除外:
1,2,3,4,5
必须是一个非常古老的教程,因为它上面写满了SQL注入。看看PDO,并尝试将其用于twitter克隆。不要学坏习惯。当你进步的时候,他们是很难忘记的!好的,现在我看到它的作用了$pref=“”,因此第一个元素上没有逗号。谢谢!我已经测试了您的代码$table='users';$arr=array('id'=>7,'name'=>nanhe','email'=>nanhe26');回波插入($table,$arr);在用户(id、姓名、电子邮件)中插入值(“7”、“南和”、“南和26”);太完美了