我正在尝试将新表格行插入自定义wpdb
表格中。数据来自发布到脚本的表单。
我在脚本开头声明global $wpdb
并插入数据库,但由于某种原因它不喜欢查询功能,WordPress建议在codex中使用它。
// declare global wpdb
global $wpdb;
// set variables for posting to db
$name = $_POST['name'];
$email = $_POST['email'];
// post to the db
$wpdb->query( $wpdb->prepare(
"
INSERT INTO $wpdb->entries
( name, email )
VALUES ( %s, %s )
",
$name,
$email
) );
关于它为什么会出现问题的任何想法?
答案 0 :(得分:9)
这是一个wordpress功能,因此只有先前已定义全局$wpdb
才能调用它。
这意味着,在/ wp-content / ...文件夹中如果使用具有wp特定功能的脚本,则在使用wordpress核心编译之前它将无法工作。
因此,例如,主题模板或插件文件只能通过调用$wpdb
来工作,但是您的独立脚本不会,即使它位于插件或主题目录中。
简单的解决方案是在运行该脚本之前包含/wp-config.php文件。只需写下:
include_once($_SERVER['DOCUMENT_ROOT'].'/wordpress/wp-config.php' );
在致电$wpdb
之前。它对我有用。
答案 1 :(得分:0)
<?php
/**
* Created by PhpStorm.
* User: manisha
* Date: 05-11-2015
* Time: 15:30
*/
include_once($_SERVER['DOCUMENT_ROOT'].'/wordpress/wp-config.php' );
$email = $_REQUEST['email'];
global $wpdb;
$result=$wpdb->query(
$wpdb->prepare(
"
DELETE FROM wp_addemail
WHERE email = %s
",
$email
)
);
this things is worked for me
答案 2 :(得分:0)
我已经使用
解决了我的错误 include_once($_SERVER['DOCUMENT_ROOT'].'/wordpress/wp-config.php' );
这段代码实际上我已经使用Ajax在我的自定义数据库表中提交了表单数据但是我遇到了致命的错误。现在致命的错误已经解决了。