2017-03-12 8 views
1

私のコードです。私はそれを実行しようとしているときに私はサーバー500エラーを受信し続けます。WPDBを使用してWordPress DBにテーブルを作成する際の助けが必要です

//Insert DATA in db 
global $wpdb; 
$table_name='customers'; 

$charset_collate = $wpdb->get_charset_collate(); 

$sql = "CREATE TABLE IF NOT EXISTS $table_name (
              ID int AUTO_INCREMENT NOT NULL, 
              refnumber varchar(255) NOT NULL, 
              primary key (id) 
             )$charset_collate;"; 


require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); 
dbDelta($sql); 


$wpdb->insert($table_name, 
       array('refnumber' => $customer['id'] 
         ) 
      ); 

私が間違っていることはわかりません。私はこれまでと同じようなコードを使って成功しました。

UPDATE 1:オーケー

はので、私はちょうど通常のエラー500ページを取得し、表示された新しい何も、上のWPのデバッグを回しました。

自分のSQL構文をデータベースで直接テストしました。できます。

私のPHP構文はオンラインツールであり、エラーはありません。

また、部分的に私のコードを修正しました。何も起こらないのは、すべてエラーなしで実行されます。エラー500は表示されなくなります。

しかし!私のデータベースは実際には作成されていませんが、私は手動で作成したテーブルをWPのデータベースに表示します。

今日私は4時間働いていて、私が間違っていることを見つけることができません。また、私が既に作成したDBに変数を挿入するだけでエラーは表示されませんが、何も追加されません。

他の同様の質問を検索しましたが、私はこの問題の唯一のようです。

+0

エラー500は、何らかの解析エラーまたは構文エラーがあることを意味します。あなたのerror.logを確認するか、あなたの 'wp-config.php'に' define( 'WP_DEBUG'、true); 'を追加して、どこが間違っているのかをよりよく知るようにしてください。 – hcheung

+0

このコードは私のサイトでうまく動作します –

+0

あなたの返信に感謝します!私は今日の私の試みで質問を更新しました。もしあなたがそれを読んでいただければ、感謝します。ありがとう – tuzotokehu

答えて

0

dbDelta()は、要件が少し厳しいようです。私はずっとそれで働いていませんが、このページはさえがint長必要があることを示唆している:https://codex.wordpress.org/Creating_Tables_with_Plugins#Creating_or_Updating_the_Table

あなたのコード内$charset_collateの前にスペースがないことを重要な場合、私はわからないが、彼らはまた、含まそのページの例では前にスペースがあります。

関連する問題