Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 插入查询在wordpress插件中不起作用_Php_Wordpress_Insert - Fatal编程技术网

Php 插入查询在wordpress插件中不起作用

Php 插入查询在wordpress插件中不起作用,php,wordpress,insert,Php,Wordpress,Insert,我正在通过前端页面调用wordpress插件函数,该函数运行良好,我正在调用的函数是将数据插入数据库,但不起作用 这是我正在运行的查询(它不起作用):在打印回显值时在提交时调用函数,但没有插入数据 function savedata(){ echo "<pre>";print_r($_POST);exit; global $wpdb; $wpdb->insert('questoptions', array( 'question_id' => $_

我正在通过前端页面调用wordpress插件函数,该函数运行良好,我正在调用的函数是将数据插入数据库,但不起作用
这是我正在运行的查询(它不起作用):在打印回显值时在提交时调用函数,但没有插入数据

function savedata(){
echo "<pre>";print_r($_POST);exit;
global $wpdb;
$wpdb->insert('questoptions',
     array(
        'question_id' => $_POST['question_id'],
        'text' => $_POST['text']

),
    array(
        '%s',
        '%s'
    )
);

die();
return true;
}
函数savedata(){
回显“”;打印($\u POST);退出;
全球$wpdb;
$wpdb->insert('questoptions',
排列(
'question\u id'=>$\u POST['question\u id'],
'text'=>$\u POST['text']
),
排列(
“%s”,
“%s”
)
);
模具();
返回true;
}
以下是从前端调用此函数的函数:

echo "<pre>";print_r($_POST);exit;'
函数abc(){
jQuery.ajax({
键入:“POST”,
url:“”,
数据:{action:'savedata','question_id':document.getElementById('question_id')。value,'text':document.getElementById('text')。value},
成功:功能(数据){
警惕(“成功”);
控制台日志(数据);
},
错误:函数(错误抛出){
console.log(错误抛出);
}
});
}

有人知道吗谢谢,请删除第二行

    add_action( 'wp_ajax_savedata', 'custom_savedata' );
    add_action( 'wp_ajax_nopriv_savedata', 'custom_savedata' );

    function custom_savedata() {
    global $wpdb;
    if(isset($_POST) && !empty($_POST['question_id'])):
        $data = ($wpdb->insert('table_name_add_here', array(
                    'question_id'        => $_POST['question_id'],
                    'text' => $_POST['text'],
                )
        ));
        if($data){
            echo 'success';
        }else{
            echo 'not success';
        }
    else:
        echo 'please check post data';
    endif;  

    exit;
}   
echo”“;打印(邮政美元);退出
所以它执行其余的代码并返回

如果您应该尝试此操作,但也没有得到解决方案,那么您必须检查数据库表名。如果表名由“wp”冒充,那么您应该在查询中尝试wp_uuquestoptions作为表名,而不是questoptions

思考。可能会对你有帮助。

添加此函数并检查是否调用了post数据

wp_ajax_nopriv_(操作)为未登录的用户执行


通过$wpdb->show_errors()启用数据库错误显示检查正在形成的查询并通过$wpdb->last_query运行这是ajax调用,因此必须使用wp_ajax。检查问题_id数据类型它不应为int。必须在function.php add_操作中使用这两行('wp_ajax_nopriv_savedata','savedata');添加动作(“wp\u ajax\u savedata”,“savedata”);这些都是alreday添加的,正如我所说的,函数正在被调用。问题在于函数内部的插入查询。请为ajax函数添加完整的代码,这些函数是您使用filter创建的,没有此never调用savedata@ravipatel这是ajaxwp_ajax_的全部代码,wp_ajax_nopriv_未找到此函数代码。因为没有类似的函数,我应该添加它吗?它正在打印阵列,现在您可以执行代码了。没有这个ajax函数,wp不会调用您的函数。Injoy我不明白你想在我的函数中说什么这部分做得很好它正在打印数据问题在于查询,,,它没有将数据插入数据库
    add_action( 'wp_ajax_savedata', 'custom_savedata' );
    add_action( 'wp_ajax_nopriv_savedata', 'custom_savedata' );

    function custom_savedata() {
    global $wpdb;
    if(isset($_POST) && !empty($_POST['question_id'])):
        $data = ($wpdb->insert('table_name_add_here', array(
                    'question_id'        => $_POST['question_id'],
                    'text' => $_POST['text'],
                )
        ));
        if($data){
            echo 'success';
        }else{
            echo 'not success';
        }
    else:
        echo 'please check post data';
    endif;  

    exit;
}