2

13 個のフィールドを持つデータベース テーブルがあり、そのうちの 9 個はフォームからのユーザー入力によって入力されます。新しい行の挿入は正常に機能しますが、既存の行の更新に問題があります。私は友人に意見を求めましたが、彼は助けてくれませんでした。

各調整は 1 つのフィールドからすべてのフィールドをカバーできるため、ユーザーが調整可能なすべてのフィールドを更新する必要があり、複数の SET ステートメントを使用したクエリが必要になります。更新クエリは

$query = sprintf("UPDATE tour 
  SET StopNum=%d, SET ForwardLink=%d, SET BackLink=%d, SET LeftLink=%d, 
  SET RightLink=%d, SET Name= '%s', SET Lat=%f, SET Lon=%f, SET Heading=%d 
  WHERE FileName='%s'", $_POST['curStop'], $_POST['nextStop'], $_POST['prevStop'],
  $_POST['leftStop'], $_POST['rightStop'], $location, $latitude, $longitude, 
  $heading, $image);

上記のクエリを使用すると、更新の例で次の出力が得られます。

UPDATE tour SET StopNum=0, SET ForwardLink=0, SET BackLink=0, SET LeftLink=0, SET RightLink=0, SET Name= 'Start', SET Lat=98.154000, SET Lon=-75.214000, SET Heading=100 WHERE FileName='../panos/photos/1-prefix_blended_fused.jpg'

mysql のエラー メッセージによると、near を使用する正しい構文については、マニュアルを確認する必要があります。

'SET ForwardLink=0, SET BackLink=0, SET LeftLink=0, SET RightLink=0, SET Name= 'S' at line 1

フィールド 'Name' は null 許容の varchar(250) コンテナーとして定義されているため、5 文字で十分なストレージ容量があります。

4

1 に答える 1

4

構文は次のようになります。

UPDATE table SET column=1,column1=2,column2=3 WHERE filename='asdf'
于 2012-05-31T19:30:07.163 に答える