<?php
class User {
private $conn;
private $table_name = "users";
public $id;
public $firstname;
public function __construct($db){
$this->conn = $db;
}
public function create(){
$query = "INSERT INTO
" . $this->table_name . "
SET
firstname = :firstname";
$stmt = $this->conn->query($query);
$this->firstname=htmlspecialchars(strip_tags($this->firstname));
$stmt->bindParam(':firstname', $this->firstname);
if($stmt->execute()){
return true;
}else {
$this->showError($stmt);
return false;
}
}
}
未捕获的错误:在null上调用成员函数query()
为什么我的查询为NULL?
当我创建一个var_dump以使用一切正常时,但我不明白为什么查询为空
答案 0 :(得分:2)
您正在跑步
$stmt = $this->conn->query($query);
这是不正确的,并且由于查询具有可绑定的参数即firstname = :firstname
您必须运行
Prepare
bindParam
execute
按此顺序
也是这个查询
$query = "INSERT INTO" . $this->table_name . "
SET firstname = :firstname";
当它运行时,会将表中每一行的firstname
更改为$this->firstname
中的任何内容
尚不清楚您是否实际上在$conn
属性中在那里设置了一个值。