【问题标题】:Insert two row in wordpress database在wordpress数据库中插入两行
【发布时间】:2013-10-22 10:23:53
【问题描述】:

您好,我正在开发一个模板,我必须在其中获取一些值并将它们插入到我自己在 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 类,那么我的模板文件数据会显示在前端,但是当我使用 $wpdb 进行插入时,它在前端什么都不会显示。

那么你对在mysql中插入数据应该怎么做有什么建议吗?

谢谢

【问题讨论】:

    标签: php mysql sql wordpress


    【解决方案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' ) );
    }
    ?>
    

    【讨论】:

    • 实际上我检查了很多次,页面本身并没有给出任何解析错误,但知道它工作正常,我成功地将数据保存在表中......谢谢
    【解决方案2】:

    “在前端不显示任何内容。”。我认为php有问题,要找出错误是什么,试试这个:

    编辑 wp-config.php,使 WP_DEBUG 为真。

    define('WP_DEBUG', true);
    

    现在它应该在首页上看到一些错误消息。

    【讨论】:

      【解决方案3】:

      首先打开主题/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);*/
          }
      

      【讨论】:

      • 您还可以添加一些上下文/解释吗?
      • 我添加了一些上下文。请检查一下。它可以在任何条件下工作,
      猜你喜欢
      • 2016-11-22
      • 2017-03-17
      • 2015-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多