1

そのため、ID(自動インクリメント列(主キー))によってデータベースからデータを取得し、<input>値のプロパティを介してタグ内のすべてのフィールドを表示できるフォームがあります。また、フォームを送信するときに、ID列のIDがまだ存在しない場合は新しい行を挿入し、存在する場合は同じIDで行の残りのデータを更新する必要があります。

私はこれを研究しようとしていますが、私がやろうとしているのと同じことをしている人はいないようです。それは常にわずかに異なります。REPLACE INTOを見つけて、次のように作成しました。

$sqlString = 'REPLACE INTO coursework
SET cwID=`'. $cwID .'`,
cwTitle=`'. $cwTitle .'`,
cwContent=`'. $cwContent .'`,
cwProgress=`'. $cwProgress .'`,
cwDue=`'. $cwDue .'`;

$_POSTメソッドから受け取ったコンテンツであるすべての$cw[]変数。

エラーコードが表示され続ける:1054-「フィールドリスト」の不明な列「6」-「不明な列「6」」は、mysqlがcwIDではなく$ cwID($ _POST ['cwID']の値)を呼び出そうとしているcolumn(これは私のテーブルの主キーです)。単純で愚かなものが欠けているように感じますが、これまでこのREPLACEINTOメソッドを使用したことはありません。

INSERT IGNORE INTO私はについての投稿を見ましたINSERT ... ON DUPLICATE KEY UPDATEが、どちらも私が探しているものよりも破壊的に聞こえます。

cwIDが存在し、自動インクリメントがそのまま維持されている場合はテーブルが更新され、IDがない場合は新しい行が追加されることを確認したいだけです。SELECTクエリを実行して、それが存在するかどうかを確認し、適切にINSERT / UPDATEする必要がありますか?

4

2 に答える 2

3

削除文字列を囲むバックティック( `)を一重引用符(')に置き換えます。

MySqlは、値として使用している文字列によって名前が付けられた列を見つけようとしています。

http://dev.mysql.com/doc/refman/5.5/en/identifiers.htmlを参照してください

于 2012-04-18T04:11:15.257 に答える
1

バックティックを一重引用符に置き換えます。

$sqlString = 
 "REPLACE INTO coursework SET cwID='$cwID', cwTitle='$cwTitle', cwContent='$cwContent', cwProgress='$cwProgress', cwDue='$cwDue'";

"また、変数が補間されることに注意してください。

于 2012-04-18T04:14:57.667 に答える