2009-07-16 9 views
-2
function saveFile($catId,$docuTitle,$linkTitle) { 

$result = mysql_query("INSERT INTO categories (cd_title, cd_link) 
         VALUES ('$docuTitle','$linkTitle') WHERE c_name = '$catID'");  

      return 'yes'; 

     } 

選択したカテゴリに基づいて、cdタイトルとcdリンクを挿入します。この質問にエラーが発生しました

+1

を?データベーススキーマを取得できますか?関数のパラメータには一重引用符が含まれていますか? –

+1

ああ、これはテスト型のもので、mysql_query()関数を使って実際にあなたのWebページから直接SQLを実行することはできないと教えてください。 – jlarson

+1

結合ステートメントで 'WHERE'は意味をなさない。 –

答えて

2

編集: Scott Saunders氏が正しいですが、INSERTクエリでWHERE文を使用することはできません。

オリジナルの回答: エラーの詳細については、$ docuTitleや$ linkTitleという変数の単純な引用符( ')が含まれている可能性があります。

これらの変数と$ catIdは、リクエストで使用する前にmysql_real_escape_string()でエスケープする必要があります。そうしないと、アプリケーションはSQLインジェクションに対して脆弱です。

PDOについてのいくつかのドキュメントを読む必要があります.SQLクエリでこの種の間違いを避けるための優れたツールであり、進化とメンテナンスの面で多くの助けとなります。

+0

PDOの+1 [+1と言う] –

2

あなたはおそらくしたい:

INSERT INTO categories (cd_title, cd_link, c_name) VALUES ('$docuTitle','$linkTitle', '$catID') 

既存の行を更新している場合を除き、その後、 'UPDATE' に 'INSERT INTO' を変更

+0

jea INSERTと同じステートメントのWHEREは意味をなさない – Flo

1

あなたがINSERT文とUPDATE文を組み合わせています。

あなたは正しい構文を選択する必要があります。どのようなエラー

INSERT INTO [TABLE] [COLUMNS] VALUES [VALUES] 

UPDATE [TABLE] SET [COLUMNS] = [VALUE] WHERE [where clause] 
関連する問題