插入wordpress数据库 - 调用成员函数insert()

时间:2014-02-19 00:15:49

标签: php database wordpress wordpress-plugin sql-insert

我遇到了通过我的插件将数据插入wordpress数据库的问题。 我的插件使用一个短代码来显示一个表格,从中进行一些计算,然后该信息应该被插入到数据库中,但我最终得到了这个消息。

我似乎无法让它发挥作用?..任何帮助都会受到极大的赞赏。

用于插入的插件代码:

include_once($_SERVER['DOCUMENT_ROOT'].'/wp-config.php' );
$wpdb->insert(
    'wp_wine_bookings',
    array(
        'name' => $_POST['name'], 
        'last_name' => $_POST['lname'],
        'phone_number' => $_POST['phone_num'], 
        'email' => $_POST['email'],
        'booking_status' => "Booked",
        'tour_name' => $_POST['tourname'],
        'tour_date' => $_POST['tourdates'],
        'number_of_people' =>  $_POST['num_ppl'],
        'price' => $_POST['priceget'],
        'state' => $_POST['state'],
        'city' => $_POST['city'],
        'country' => $_POST['country'],
        'mobile' => $_POST['mobile'],
        'preffered_pickup_point' => $_POST['locationpickup'],
        'arrival_date' => $_POST['arrivaldate'],
        'name_on_credit_card' => $_POST['cn'],
        'credit_card_type' => $_POST['type'],
        'payment_date' => date("d-m-y"),
        'occasion' => $_POST['occasion'],
        'requirementsO' => $_POST['requirementsO'],
        'requirementsP' => $_POST['requirementsP']
    ), 
    array( 
        '%s', 
        '%s',
        '%s',
        '%s',
        '%s',
        '%s',
        '%s',
        '%s',
        '%s',
        '%s',
        '%s',
        '%s',
        '%s',
        '%s',
        '%s',
        '%s',
        '%s',
        '%s',
        '%s',
        '%s',
        '%s'
    ) 
);

PHP错误:

  

致命错误:在非对象中调用成员函数insert()   /home/user/public_html/wp-content/plugins/BookingWT/booknow.php   在第52行

1 个答案:

答案 0 :(得分:3)

<强>首先
为什么要包含文件wp-config.php?你根本不需要包含它。

<强>第二

您正在访问wpdb类($wpdb)的实例。这是在当地范围内。

您必须$wpdb global

global $wpdb;        // <--- making $wpdb as global
$wpdb->insert(
...
...