1

私はここで他のフォーラムでたくさんの解決策を試しましたが、常にエラーが発生します。これは、hostgatorとPHP5.2を使用した現在のPHPコードです。

$insert = "INSERT INTO events (datecreated, fullname, email, title, url, picurl, desc, psw, skypeid, event) SELECT jvs.datecreated, jvs.fullname, jvs.email, jvs.title, jvs.url, jvs.picurl, jvs.desc, jvs.psw, jvs.skypeid, jvs.event FROM jvs";
if (! mysqli_query($dbh, $insert)  ||  mysqli_affected_rows($dbh) == 0)
            {
die ("<BR><BR><BR>Failed to insert data- " . mysqli_error($dbh));
            }

私が得るエラーは次のとおりです:

SQL構文にエラーがあります。'desc、psw、skypeid、event)SELECT jvs.datecreated、jvs.fullname、jvs.email、jvs'の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。1行目

両方の表のすべてのフィールドをチェックしましたが、スペルは正しく、フィールドはそこにあります。ファイルはイベントテーブルで同じ順序ではなく、そのテーブルにはさらに多くのフィールドがあります。ありがとう、エド

4

2 に答える 2

3

DESCMySQLの予約済みキーワードです。backtickあなたは、例えばで脱出する必要があります

INSERT INTO tableName(......, `desc`, .....)
SELECT ...
于 2012-12-18T02:29:18.533 に答える
0

1. descを参照してください。descは予約語であり、ステートメントとして読み取られるため、バックティックを追加する必要があります。

2.INSERT INTO 2つのクエリ(およびSELECT)の間に区切り文字を追加する必要があります

3.そして、あなたはどこにいますかVALUESINSERT INTOVALUES

そして、修正コードは次のとおりです。

$insert = "INSERT INTO events (`datecreated`, `fullname`, `email`, `title`, `url`, `picurl`, `desc`, `psw`, `skypeid`, `event`) VALUES('datecreated', 'fullname', 'email', 'title', 'url', 'picurl', 'desc', 'psw', 'skypeid', 'event');
SELECT jvs.datecreated, jvs.fullname, jvs.email, jvs.title, jvs.url, jvs.picurl, jvs.desc, jvs.psw, jvs.skypeid, jvs.event FROM jvs";
if (! mysqli_query($dbh, $insert)  ||  mysqli_affected_rows($dbh) == 0){
   die ("<BR><BR><BR>Failed to insert data- " . mysqli_error($dbh));
}
于 2012-12-18T03:10:36.493 に答える