0

基本的に私がやろうとしているのは、クエリ結果の選択された部分を最近作成されたテーブルに挿入するsqlステートメントを実行することです。私はそれをmysqlでテストし、この行を実行しました

INSERT INTO searched(imagetargetpath, gamename, gamedirectory, `like`, dislike) 
SELECT imagetargetpath, gamename, gamedirectory, `like`, dislike
FROM boardgamelist
WHERE gamename LIKE '%david%'

それは正常に実行されましたが、phpmyadminから与えられたものから同じ行をphpに入れると、mysql_queryが実行されないようです

$sql = "INSERT INTO searched(imagetargetpath, gamename, gamedirectory,
`like`,   dislike) \n"
. "SELECT imagetargetpath, gamename, gamedirectory, `like`, dislike\n"
. "FROM boardgamelist\n"
. "WHERE gamename LIKE \'%david%\'";
    //copies query
    $copy_query = mysql_query($sql);

以前は私のコードにありましたが、テーブルを「検索」するmysqlコマンド(動作することが確認されています)がありますが、実行を許可しないmysqlコマンドで何をするのを忘れていますか?

4

2 に答える 2

3

改行のスペースを忘れました:

. "SELECT imagetargetpath, gamename, gamedirectory, `like`, dislike\n"
                                                                   ^---here
. "FROM boardgamelist\n"
                     ^---here

これにより、最終的なクエリ文字列は次のようになります。

... dislikeFROM boargamelistWHERE

必要最低限​​のエラー処理さえあった場合、例えば

$copy_query = mysql_query($sql) or die(msyql_error());
                               ^^^^^^^^^^^^^^^^^^^^^^

構文エラーについて通知されているはずです。

于 2012-04-20T18:14:50.833 に答える
2

これを試して

$sql = "INSERT INTO searched(imagetargetpath, gamename, gamedirectory, `like`, dislike) "
. "SELECT imagetargetpath, gamename, gamedirectory, `like`, dislike "
. "FROM boardgamelist WHERE gamename LIKE '%david%'";
于 2012-04-20T18:16:37.577 に答える