PHPで実行するとMySQLクエリに問題があります。 PHPMyAdminまたはSequelProで実行するとうまく動作しますが、PHPファイルにコピーすると実行されるため、動作しなくなります。PHPMyAdminで実行したときにMySQLトランザクションが動作しますが、PHPファイルで実行されていない場合には
クエリは、主キーとリンクされている複数のテーブルからデータを取得し、対応する同一のテーブルにそのデータを配置するように設計されています。私はそれが奇妙なことだと知っていますが、それを行う必要があります。
クエリ(PHPファイルで使用されるように)次のとおりです。
for($x = 0; $x < count($REQIDARRAY); $x++){
$sql="BEGIN;
INSERT INTO `Request`
SELECT NULL AS `RequestID`, `ModCode`, `RoomID`, `Students`, `Priority`, `Day`, `StartTime`, `Length`, `Semester`, `DateAdded`, `SpecialRequests`
FROM RequestTEMP
WHERE RequestTEMP.RequestID=\"".$REQIDARRAY[$x]."\";
INSERT INTO `Week`
SELECT `WeekNumber` , LAST_INSERT_ID() AS `RequestID`
FROM `WeekTEMP`
WHERE WeekTEMP.RequestID=\"".$REQIDARRAY[$x]."\"';
INSERT INTO `RequestFacilities`
SELECT LAST_INSERT_ID() AS `RequestID` , `FacilityID`
FROM `RequestFacilitiesTEMP`
WHERE RequestFacilitiesTEMP.RequestID=\"".$REQIDARRAY[$x]."\"';
DELETE FROM `RequestTEMP` WHERE RequestID=\"".$REQIDARRAY[$x]."\";
DELETE FROM `RequestFacilitiesTEMP` WHERE RequestID=\"".$REQIDARRAY[$x]."\";
DELETE FROM `WeekTEMP` WHERE RequestID=\"".$REQIDARRAY[$x]."\";
COMMIT;";
$DB->Query('TransferMe' , $sql);
}
私は$ REQIDARRAYは[$ x]は正しい値を返していることを確認しました。 SequelProでそれを実行し、その変更を全てPHPで私が変わってしまうということです
RequestID=\"".$REQIDARRAY[$x]."\"
'RequestID='123'
にエラーメッセージがある:
あなたのSQL構文でエラーが発生しています。あなたのMySQLサーバのバージョンに対応するマニュアルを調べて、正しい構文が 'INSERT INTO
Request
SELECT NULL AS
RequestID
,、
RoomID
、学生2行目の' Student 'の近くで使用されていることを確認してください。
MySQLバージョンは5.1.60です。
私はこの問題を引き起こしているかどうかわからない、私はまた、PHPファイルにRequestIDの値をハードコーディングしようとしたが、それでも同じエラーを返します。
ご迷惑をおかけして申し訳ありません。
'$ DB'とは何ですか? '$ DB-> Query()'は複数のクエリを扱うことができますか? – Mchl
は '$ DB'は'パブリック関数のクエリ($名、$ sqlを){//変数にデータベースとSTOREクエリ結果を照会 \t \t \t \tます$ this->結果[$名 \t \t \t \t ] = mysql_query($ sql)またはdie(mysql_error()); \t \t} '。私はmysql_queryが複数のクエリを受け入れることができるかどうかは考えていませんでしたが、私は一見を持っています – user1149405