我的更新查询问题

时间:2011-12-07 21:05:57

标签: php sql

我试图提交更新功能,但由于某些原因它无法正常工作,我无法弄明白为什么......有人这样做了?

更新SQL-SYNTAX:

public function updateProject($db, $id) {
       $sql = "UPDATE tblProject SET 
        name = '".$db->escape($this->name)."',
        photo1 = '".$db->escape($this->photo1)."'
        WHERE id = '".$id."'";
       return $db->insert($sql);
 }

INSERT FUNCTION:

public function insert($sql) {
    mysql_query($sql, $this->_connection);
    return mysql_affected_rows($this->_connection);
}

PHP:

$project = new Project();
$project->name     = $_POST['newproject_name'];
$project->photo1    = $_FILES['images']['name'][0];

if($project->updateProject($_DB, $projectname)) {
    $feedback = "OK!";
} else {
    $feedback = "NOT OK!!";
}

如果您想知道,$project->name$project->photo1已正确填写。 有任何想法吗?我希望我能把你需要的一切都给你,如果没有,请告诉我!

编辑1 :我使用了2个第一个答案,但没有结果。然而...
编辑2 :我也从$feedback

获取任何内容

3 个答案:

答案 0 :(得分:2)

看起来你在SET关键字后面有一个假的左括号。删除它。

public function updateProject($db, $id) {
       $sql = "UPDATE tblProject SET 
        name = '".$db->escape($this->name)."',
        photo1 = '".$db->escape($this->photo1)."'
        WHERE id = '".$id."'";
       return $db->insert($sql);
 }

答案 1 :(得分:1)

public function updateProject($db, $id)

需要传递2个参数,但是当你执行

if($project->updateProject($_DB))

你只传递1 ??

答案 2 :(得分:1)

您的updateProject需要两个变量,而第二个变量在您的通话中丢失,导致查询无效。

修改:根据您的修改;我猜测$id需要是一个整数或一个字符串,你传递一个对象。

您想要更新哪一行?我在PHP代码中没有看到任何定义要修改的行的ID的内容,您只是生成一个新对象,而不是从数据库中获取一个对象。