SQL插入语法

时间:2015-02-18 07:10:40

标签: php sql insert

public $id;
public $post;
public $postedon;

public function insert($target_file){
    $sql="INSERT INTO post (ID,Post,PostedOn,Picture) VALUES (".$this->id.",".$this->post.",".$this->postedon.",".$target_file.")";
    $this->db->execute($sql);
}

//没有错误,但我无法在数据库中插入值

3 个答案:

答案 0 :(得分:2)

使用以下代码替换您的查询字符串

$sql="INSERT INTO post (ID,Post,PostedOn,Picture) VALUES ('$this->id','$this->post','$this->postedon','$target_file')";

答案 1 :(得分:1)

要与single quote一起使用,因为您要在数据库中插入需要single quote插入数据库的字符串值。

$sql="INSERT INTO post (ID,Post,PostedOn,Picture) VALUES (".$this->id.",'".$this->post."','".$this->postedon."','".$target_file."')";

而不是

$sql="INSERT INTO post (ID,Post,PostedOn,Picture) VALUES (".$this->id.",".$this->post.",".$this->postedon.",".$target_file.")";

答案 2 :(得分:1)

您在值

中缺少'
public $id;
public $post;
public $postedon;

public function insert($target_file){
    $sql="INSERT INTO post (ID,Post,PostedOn,Picture) VALUES (".$this->id.",'".$this->post."','".$this->postedon."','".$target_file."')";
    $this->db->execute($sql);
}

你做了一件有风险的事情,你是直接将值注入字符串,它不安全,有人可以做sql注入,你可以使用param绑定来避免这种情况,阅读sql注入。