0

私はwgetを介して5つのphpスクリプトを実行しているbash-sctiptを持っています。すべてのphpファイルが呼び出されますが、最後のスクリプトで、次の警告が表示されます。

mysql_query():指定された引数はxyz.phpのABC行の有効なMySQL-Linkリソースではありません

本当に奇妙なのは、ブラウザを介して同じスクリプトを実行すると、警告なしにスクリプトが正常に実行されることです。

これはABC行の近くの私のコードです:

$sqlSTR="INSERT INTO accounts_cstm (id_c, mtk_categoriascompradas_c) VALUES ('". $arr[1] . "', '" . $arr[0] . "')
                    ON DUPLICATE KEY UPDATE mtk_categoriascompradas_c= concat(mtk_categoriascompradas_c, '^,^$arr[0]')";        

$ExecuteSQL = mysql_query ($sqlSTR, $DBConn) or
                die ($sqlSTR); //warning on this line - line ABC

私のSQLは完全に有効です(「die」ステートメントで出力されたクエリを実行すると、完全に実行されます)、DBConnはデータベースに接続され、これを除く他のすべてのスクリプトは正常に実行されます。

この警告の原因は本当にわかりません。どんな助けでも大歓迎です。

ありがとう

4

4 に答える 4

4

問題は実際にはデータベース接続にあります ( $DBConn)。そのコードを見てください。var_dump を挿入して、wgetting を再試行してください。

于 2009-05-13T14:21:25.980 に答える
1

mysql_error()このエラー メッセージが表示された場合は、常に使用してください。次に、クエリが無効だった正確な理由がわかります。

于 2009-05-13T14:40:30.630 に答える
0

クエリ内の $arr[0] への最後の参照には間違いなく何かが間違っているように見えます-次のようにする必要があると思います:

$sqlSTR="INSERT INTO accounts_cstm (id_c, mtk_categoriascompradas_c) VALUES ('". $arr[1] . "', '" . $arr[0] . "')
ON DUPLICATE KEY UPDATE mtk_categoriascompradas_c= concat(mtk_categoriascompradas_c, '^,^".$arr[0]."')";   
于 2009-05-13T14:21:23.547 に答える
0

wget で呼び出している URL にアンパサンドが含まれていますか? その場合は、シェルがそれをとして解釈していないことを確認してください。send process to background

于 2009-05-13T15:49:02.173 に答える