2

私はこのエラーがあるようです:

WordPress database error ERROR:  column p.id does not exist LINE 1: SELECT p.id FROM wp_posts AS p  WHERE p.post_date > '2013-01...

このコードブロックから来る:

<?php
$posts=$wpdb->get_results($wpdb->prepare(
 "SELECT post_id, meta_value FROM $wpdb->postmeta WHERE meta_key = %s " .
 "ORDER BY CHAR_LENGTH(meta_value) DESC, meta_value DESC LIMIT 5",
 '_wp-svbtle-kudos'
));
?>

私はwordpressでpostgresqlを使用しています。私はこれを実装し、このテーマを使用しています。問題はここの78行目から来ています。

投稿の場合、データベースは次のようになります。

ここに画像の説明を入力してください

そしてpostmetaの場合は次のようになります。

ここに画像の説明を入力してください

4

2 に答える 2

3

Postgresはキャップ/キャップなしにうるさいです。私がインストールしたワードプレスは、データベースの列名としてIDではなくIDを持っていました。grep -r'p / .id' *を実行し、wp-includes/link-template.phpでp.idを見つけました。1177行目に、$ query = "SELECT p.id FROM $ wpdb-> posts AS p $ join $ where$sort";がありました。これを$query= "SELECT p.ID FROM $ wpdb-> posts AS p $ join $ where$sort"に変更しました。そしてエラーはなくなりました。

于 2013-01-31T10:20:16.033 に答える
2

エラーメッセージから、WordPressがこのようなテーブルを作成したのではないかと思います。

create table "wp_posts" (
  "ID" int8 primary key,
  ...
);

PostgreSQLでは、二重引用符で囲まれた大文字を使用して列名を宣言する場合は、同じ方法でアクセスする必要があります。

SELECT p."ID" FROM wp_posts p ...
于 2013-01-03T03:01:15.953 に答える