簡體   English   中英

為什么我在這里得到“查詢為空”?

[英]Why am I getting “Query was empty” here?

相關代碼:

add_action( 'wp_ajax_proj_update', 'proj_update' );
function proj_update ( )
{


    $id = $_POST['id'];
    $compname = $_POST['compname'];
    $projname = $_POST['projname'];
    $imageurl = $_POST['imageurl'];
    $sumsmall = $_POST['sumsmall'];
    $sumfull = $_POST['sumfull'];
    $results = $_POST['results'];
    $caseid = (!isset($_POST['caseid']) || strcmp($_POST['caseid'],'none')) ? $_POST['caseid'] : "NULL"; // weirdness required to get the value of our <select name="caseid"> element converted to something we can insert to database
    $hide = array_key_exists('hide',$_POST) !== false ?  1 : 0; // weirdness required to get the value of <input type="checkbox" name="hide"> converted to something we can insert to database

    $thisAction = $_POST['thisAction']; 

    global $wpdb;

    $message = "";

    switch ($thisAction)
    {
        case 'add':
        {
            /* Note: Have to break up prepare statement because https://core.trac.wordpress.org/ticket/12819 */
            $addQuery = $wpdb->prepare("INSERT INTO projs (compname,projname,imageurl,sumsmall,sumfull,results,caseid,hide) VALUES (%s,%s,%s,%s,%s,%s,%d," . $caseid . ",%d)",
                                        array($compname, $projname,$imageurl,$sumsmall,$sumfull,$results,$hide));        
            $message .= $wpdb->query($addQuery) 
                        ? 'Successfully added project to the database.'
                        : 'Error occurred when trying to add project to database: ' . $wpdb->last_error;
            break;
        }

由於某些原因, $wpdb->last_error變成了Query was empty is Query was empty ,我不知道為什么。 我看過有關此主題的其他SO帖子,他們說一個未定義的對象被用作查詢,但是在這里,我使用$addQuery作為查詢,但沒有看到未定義該對象的任何原因。

有任何想法嗎?

嘗試使用$ wpdb-> insert而不是$ wpdb-> query插入數據庫。

有關使用$ wpdb的更多信息,可以在這里找到:

https://codex.wordpress.org/Class_Reference/wpdb

調用->prepare失敗,因為查詢出錯。 您有8列和8個占位符,以及手動添加的$caseid ,傳遞給該函數的數組包含7個元素。

您可能有一個超過%s

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM