数日前に正常に機能していたクエリがあります。
SELECT
id, title, details, filetype, filepath, size, details, location, datetime,
IF(hid=1, 'Anonymous',
(
SELECT name
FROM users
WHERE did = userid
))
AS username
FROM infotable
WHERE ext2!='0'
ORDER BY id DESC
LIMIT 50
しかし、数日前にエラーが発生し始めました。
コマンドが同期していません。現在、このコマンドは実行できません
私はそれをphpページから呼び出していますが、MySQLのGUIからSQLクエリとして実行することも試みました。同じエラーが発生しました:
グーグルで検索したところ、MySQLからMySQLiへのアップデートが原因である可能性があることがわかりました。 MySQLiを使用して別のクエリを作成するために多くのことを試みましたが、エラーが発生するたびに(同じエラーが発生することもあれば、他のエラーが発生することもあります)。
私の質問は:
1。これが何と呼ばれるか:Sub QueryまたはMulti Query
2。正確なエラーとその解決策は何ですか?
私はこのスタックオーバーフローの質問があなたのクエリに関連していると思います:
結果が別の呼び出しの前に完全にフェッチされないためです。 PHP docsもこれを読む解決策があります:
まだ興味があるかもしれない人のために、私は自分でこの問題に遭遇し、テーブルが突然このエラーを出し始めました。テーブルでCHECKを実行すると、エラーがあり、クラッシュしたことが示されました。テーブルでREPAIRを実行するとエラーが修正され、自分のクエリで「コマンドが同期していません」というエラーが表示されなくなりました。