-1

こんにちは、値を取得して、wordpress データベースに作成した独自のテーブルに挿入する必要があるテンプレートに取り組んでいます。wordpressデータベースにレコードを挿入する方法がわからないので、練習のためにローカルサーバーで試しています。私のテンプレートファイルは次のとおりです。

<?php
/**
   Template Name: Injection.
 */
get_header();
?>
<form method="post" action="">
Album: <input type="text" name="album" />
Artist: <input type="text" name="artist" />
<input type="submit" name="submit"/>
</form>
<?php
if(isset($_POST['submit']))
{
require_once('../../../wp-load.php');
 global $wpdb

 $album=$_POST['album'];
 $artist=$_POST['artist'];

 $wpdb->insert( 'music', array( 'album' => $album, 'artist' => $artist ), array( '%s', '%s' ) )
}
?>

ここで奇妙な問題があります ここで $wbdb クラスを使用しないと、temlate ファイルのデータがフロントエンドに表示されますが、挿入に $wpdb を使用すると、フロントエンドに何も表示されません。

mysqlにデータを挿入するために何をすべきかについて何か提案はありますか。

ありがとう

4

3 に答える 3

1

追加しませんでした; テンプレートにサインインし、以下のコードのようなものを試してください。

    <?php
/**
   Template Name: Injection.
 */
get_header();
?>
<form method="post" action="">
Album: <input type="text" name="album" />
Artist: <input type="text" name="artist" />
<input type="submit" name="submit"/>
</form>
<?php
if(isset($_POST['submit']))
{
require_once('../../../wp-load.php');
 global $wpdb;

 $album=$_POST['album'];
 $artist=$_POST['artist'];

 $wpdb->insert( 'music', array( 'album' => $album, 'artist' => $artist ), array( '%s', '%s' ) );
}
?>
于 2013-10-22T11:06:19.467 に答える
1

「フロントエンドに何も表示しません。」. php に何か問題があると思います。エラーの内容を確認するには、次を試してください。

wp-config.php を編集し、WP_DEBUG を true にします。

define('WP_DEBUG', true);

これで、フロント ページにいくつかのエラー メッセージが表示されるはずです。

于 2013-10-22T10:52:17.413 に答える
0

最初に theme / function.php ファイルを開き、このコードを function.php ファイルに追加します。最初に hook_action() を追加します。

 add_action('wpcf7_before_send_mail','save_to_db');

次に、データをデータベースに保存する関数を作成します。

    function save_to_db($cf7) {

       global $wpdb;

       $name = $_POST["your-name"];
       $mail = $_POST["your-email"];
       $subject = $_POST["your-subject"];
       $phoneno = $_POST["your-phoneno"];
       $address = $_POST["your-address"];
       $message = $_POST["your-message"];

       $test = $wpdb->insert($wpdb->prefix.'contactus', 
        array(
          'name'          => 'test',
          'email'       => 'test@gmail.com',
          'subject'     => 'fsaf',
          'phone'       => '1234566230',
          'address'     => 'tes',
          'message'     => 'asdasdasd'            
        ),
        array(
          '%s',
          '%s',
          '%s',
          '%s',
          '%s',
          '%s'
        ) 
       ); 
       /*echo $wpdb->last_query;die;
      echo '<pre>'; print_r($test);*/
    }
于 2015-05-05T08:57:52.183 に答える