2011-12-07 21 views
1

私は更新機能を提出しようとしていますが、何らかの理由でそれが機能していないとわかりません。私の更新クエリで問題が発生しました

UPDATEの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機能:

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!!"; 
} 

とケースでよuは不思議に思っていた、$project->name$project->photo1が正しく記入されています。 アイデア私はあなたに必要なものをすべて贈ってほしいと思っています。

EDIT 1:最初の2つの回答を使用しましたが、結果はありません。しかし...
EDIT 2:私はまた、あなたがSETキーワードの後に​​浮遊する括弧を持っているように見えます$feedback

答えて

2

から何かを得ることはありません。それを除く。

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); 
} 
+2

それは時には最善のプログラマをもらった最小のものです.lol – Andres

1
public function updateProject($db, $id) 

渡される2つのパラメータが必要ですが、あなたは

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

を行うときにのみ1を渡しています?

+0

これは私が考えたものですが、結果はありません... – Michiel

+0

あなたはあなたの$ idをどこで設定していますか? – Andres

+0

Hm、あなたの関数updateProjectの – Michiel

1

updateProjectには2つの変数が必要で、2番目の変数が不足しているため、無効なクエリが発生します。

編集:編集内容に基づいて、私は$idが整数か文字列である必要があると推測しています。オブジェクトを渡しています。

正確にどの行を更新しますか?私は変更したい行のIDを定義するPHPコード内に何も表示されません。たとえば、データベースからオブジェクトを取得せずに新しいオブジェクトを生成しているだけです。

+0

OK、 '$ project'はコピー/ペーストミスです。今修正されました。投稿に含まれていないコードでは、私は自分のデータベースのデータをフォームに記入し、それを更新します。 – Michiel

+0

@Michiel '$ projectname'は' $ project-> name'と同じですか?そうであれば、クエリの 'id'は' name'でなければなりません。 – jeroen

+0

いいえ '' $ projectname'はコードのどこか他の場所で与えられた整数です – Michiel

関連する問題