sql >> データベース >  >> RDS >> Mysql

WPDBクラスでのWordPressMySQLSQLクエリエラー

    WordPressプラグインユーザーまたは外部スクリプト開発者は、ezSQLに基づくすべてのデータベース操作の関数クラスである$ wpdbクラスを使用して、MySQLデータベースでクエリまたは操作を実行しようとすると問題が発生する可能性があります。 $ wpdb WordPressクラスを使用すると、PHPでデータベース接続構文を手動で再度コーディングしなくても、データベーステーブルに簡単にアクセスできます。 $ wpdbは、query、get_var、get_row、get_col、get_results、escape、show_errors、hide_errors、get_col_info、flushなど、データベース内のデータにアクセス、取得、選択、削除、更新、または操作するためのいくつかの関数を提供します。

    これらの$wpdbを使用して、プラグインや外部スクリプト、またはWordPressコード自体のように、SQLステートメントを解析すると、次のエラーまたは同様のエラーが表示される場合があります。

    WordPressデータベースエラー:[SQL構文にエラーがあります。 1行目の「ORDERBYpost_dateASC LIMIT 1」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください]
    SELECT ID、post_title FROM wp_posts WHERE post_date>” AND post_date <‘2006-08-28 09:03:57’AND post_status =‘publish’AND ID!=ORDER BY post_date ASC LIMIT 1

    または(bsuite B2V6からの以下)、

    WordPressデータベースエラー:[SQL構文にエラーがあります。 MySQLサーバーのバージョンに対応するマニュアルで、「ページの近く」で使用する正しい構文を確認してください。ELSELEFT(b.post_title、60)END AS title、SUM(a.hits_reads)AS sor’at line 4]
    SELECT a.post_id AS post_id、CASE WHEN b.post_title IS NULL THEN'Alice's Home' ELSE LEFT(b.post_title、60)END AS title、SUM(a.hits_reads)AS sort_order、CONCAT('Tot:'、FORMAT( SUM(a.hits_reads)、0)、'、平均:'、FORMAT((SUM(a.hits_reads))/((TO_DAYS(NOW())– TO_DAYS(MIN(a.bstat_date)))+ 1)、 0)、'、Max:'、FORMAT(MAX(a.hits_reads)、0)、'')AS note FROM wp_bstat_hits a LEFT JOIN wp_posts b ON(a.post_id =b.ID)WHERE bstat_date> '2006-08 -03'GROUP BY a.post_id ORDER BY sort_order DESC LIMIT 5

    エラーの理由の1つは、WordPress投稿のIDを表すpost_IDまたはID変数が原因です。使用したPHP、MySQL、WordPressのバージョンに応じて、エラーを回避または解決するための回避策または解決策として、$post_idまたは$idまたは$post-> IDを一重引用符(‘)で囲むことができます。


    1. SQLiteで数値を通貨としてフォーマットする

    2. mysql_real_escape_string()を回避するSQLインジェクション

    3. SQL:使用可能なすべてのテーブルからすべてのデータを削除します

    4. MySQL-文字列の長さでデータを選択する方法