Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么是;“创建方法”;未在数据库中注册数据?_Php - Fatal编程技术网

Php 为什么是;“创建方法”;未在数据库中注册数据?

Php 为什么是;“创建方法”;未在数据库中注册数据?,php,Php,我在PHP方面有问题。插入不起作用,我不知道为什么 public function create($table,$fields =array()){ $columns=implode(' ', array_keys($fields)); $values=':'.implode(', :',array_keys($fields)); $sql="INSERT INTO {$table} ({$columns}) VALUES ({$values}))"; var_d

我在PHP方面有问题。插入不起作用,我不知道为什么

public function create($table,$fields =array()){
    $columns=implode(' ', array_keys($fields));
    $values=':'.implode(', :',array_keys($fields));
    $sql="INSERT INTO {$table} ({$columns}) VALUES ({$values}))";
    var_dump($fields);  

    if($stmt =$this ->pdo ->prepare($sql)){
        foreach ($fields as $key => $data) {
            $stmt ->bindValue(':' .$key,$data);
        }

        $stmt ->execute();

        return $this->pdo->lastInsertId(); 
    }
}
报名表格如下:

$user_id=$getFromU->create('users', array(email => $email,'password'   =>md5($password),'screenName' => $screenName, 'profileImage' =>'assets/images/defaultProfileImages','profileCover' =>'asset/images/defaultCoverImages'));
$_SESSION['user_id']=$user_id;
header('Location:includes/signup.php?step=1');

请注意,您的数据库对注入攻击是完全开放的,请准备这些语句!您的错误日志说明了什么?至少在注册表单中对电子邮件使用引号:数组('email'=>$email…它至少不会显示任何错误,您需要在列名之间添加一些逗号,并删除SQL周围额外的结束括号。有关调试提示,请参阅,包括如何启用错误报告。请您更具体一点。我有一个学校项目,所以我不是php方面的专家。