$ wpdb-> insert không hoạt động theo bất kỳ cách nào


7

Tôi biết loại câu hỏi này đã được hỏi nhiều lần, nhưng tôi không thể tìm ra giải pháp cho vấn đề của mình, vì vậy tôi hy vọng bạn có thể giúp tôi. Tôi đang sử dụng WP 3.3. và tôi đã tạo ra một bảng tùy chỉnh. Bây giờ tôi muốn chèn một số dữ liệu vào nó, nhưng tôi không thể làm cho nó hoạt động được. Đây là mã của tôi:

global $wpdb;
$table_name = $wpdb->prefix . "my_data";
$wpdb->insert($table_name, array(
            'my_id'     => NULL,
        'my_day'    => $day,
        'my_month'  => $month,
        'my_abbr'   => $abbr,
        'my_venue'  => $venue,
        'my_geo'    => $geo_one.", ".$geo_two,
        'my_artist' => $artist,
        'my_link'   => $link
                )
                );

Tôi đang cố gắng chèn dữ liệu trong vài giờ mà không gặp may mắn. Trước mắt tôi, mã là chính xác, nhưng tôi đoán tôi chỉ đang nhầm lẫn một cái gì đó quan trọng ở đây. Bất kỳ con trỏ sẽ được đánh giá cao! Cảm ơn bạn


4
Sử dụng $wpdb->print_error();trong dòng tiếp theo để chèn và kiểm tra nếu nó ném bất kỳ lỗi nào.
tamilsweet

Cảm ơn nhiều. $ wpdb-> show_errors () không hiển thị gì ngoài print_error () đã chỉ ra chính xác vấn đề là gì!
Valentin Despa

Câu trả lời:


14

Khi $wpdbphương thức không thực hiện như nó có thể xảy ra với truy vấn SQL kết quả (do nhập sai hoặc một cái gì đó khác).

Thực hiện theo wpdb reference in Codexđể khắc phục sự cố:

  • cho phép hiển thị lỗi cơ sở dữ liệu thông qua $wpdb->show_errors()
  • kiểm tra xem truy vấn nào đang được hình thành và chạy qua $wpdb->last_query

0

Lớp wpdb không có phần chèn; bạn không nên sử dụng truy vấn; xem codex và bạn không tìm thấy chức năng này insert()- http://codex.wordpress.org/Class_Reference/wpdb

Một ví dụ để chèn một bảng tùy chỉnh trên WPDB; sử dụng CREATE TABLECú pháp -Query mặc định và tạo với query()wpdb bảng với các giá trị của bạn.

        $table = $GLOBALS['wpdb'] -> prefix . 'my_data';
        $GLOBALS['wpdb'] -> query(
            "CREATE TABLE $table (
            called_by varchar(96) NOT NULL,
            my_name varchar(96) NOT NULL,
            my_type varchar(15) NOT NULL,
            first_call int(11) NOT NULL,
            arg_count tinyint(4) NOT NULL,
            file_name varchar(128) NOT NULL,
            line_num smallint NOT NULL,
            PRIMARY KEY (first_call, my_name) )"
        );

Để chèn nguồn này, sử dụng register_activation_hook()-hook; Chỉ khi kích hoạt, plugin sẽ cài đặt bảng, nếu nó không tồn tại. Trên register_uninstall_hook()tôi xóa các bảng tùy chỉnh.



vâng, tôi viết điều này trên bình luận.
bueltge
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.