Php 为什么是;“创建方法”;未在数据库中注册数据?
我在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
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方面的专家。