簡體   English   中英

提交表單時出現空查詢錯誤

[英]Empty Query error when submitting form

抱歉,這是一個重復的問題,但由於某種原因,我無法對收到的答案發表任何評論,而該問題尚未得到回答。

當我提交表單(通過Ajax)時,出現以下錯誤消息:

PHP警告: mysqli_query() [function.mysqli-query]:/home1/xenongro/public_html/testing/enrolment/thanks.php中第32行的空查詢

我懷疑這與if / else語句有關,但不確定實際問題是什么。 作為測試,我刪除了if / else語句,並成功從表單中提交了一些值。 不幸的是,當我將其作為條件時,它出現了上述錯誤。

有人可以幫忙嗎?

<?php

$firstname = htmlspecialchars(trim($_POST['fname']));
$lastname = htmlspecialchars(trim($_POST['lname']));
$worktel = htmlspecialchars(trim($_POST['worktel']));
$funding = htmlspecialchars(trim($_POST['funding']));
$level = htmlspecialchars(trim($_POST['level']));

$dbc = mysqli_connect('localhost', 'xxxxx', '<xxxx>', 'xxxx')
or die ('Could not connect to MySQL server.');

if ($level != "IOSH Managing Safely"){
    if ($funding == "Self Funding"){
        $query = "INSERT INTO enrolments (fname, lname, worktel)" . 
        "VALUES ('$firstname', '$lastname', '$worktel')";
    }
    else if ($funding == "Employer Funding"){
        $query = "INSERT INTO enrolments (fname, lname, worktel)" . 
        "VALUES ('$firstname', '$lastname', '$worktel')";
    }
}
else if ($level == "IOSH Managing Safely"){
    if ($funding == "Self Funding"){
        $query = "INSERT INTO enrolments (fname, lname, worktel)" . 
        "VALUES ('$firstname', '$lastname', '$worktel')";
    }
    else if ($funding == "Employer Funding"){
        $query = "INSERT INTO enrolments (fname, lname, worktel)" . 
        "VALUES ('$firstname', '$lastname', '$worktel')";
    }
}

$result = mysqli_query($dbc, $query)
or die ('error querying database');
mysqli_close($dbc);

?>

當您使用else if時,在else if塊內執行查詢並返回注釋

$result = mysqli_query($dbc, $query) //Inside the else if block

如果您是通過ajax發布並使用jquery,則應首先像這樣提交,否則它將不會在ajax網址中使用任何發布值

$.ajax ({
        type:'post',
        url:"domainPath",
        success: function(response) {
            if(!response.trim()) { ....

如果$funding不等於“ Self Funding”和“ Employer Funding”,則$query將為空。
否則, $query不能為空。

嘗試以下解決方案(在$ ErrorsRow中,您可以彌補所有表單錯誤):

if(isset($_POST['submit_button'])){
    $Data = $_POST;
    foreach ($Data as $key => $value) {
        if(!empty($value)) {
            $DataRow[$key] = htmlspecialchars(trim($value));
        } else {
            $ErrorsRow[] = 'Empty field '. $key;
        }
    }

    if($DataRow && !isset($ErrorsRow)){
        $firstname = $DataRow['fname'];
        $lastname  = $DataRow['lname'];
        $worktel   = $DataRow['worktel'];
        $funding   = $DataRow['funding'];
        $level     = $DataRow['level'];

    $dbc = mysqli_connect('localhost', 'xxxxx', '<xxxx>', 'xxxx')
    or die ('Could not connect to MySQL server.');

    if ($level != "IOSH Managing Safely"){
     if ($funding == "Self Funding"){
      $query = "INSERT INTO enrolments (fname, lname, worktel)" . 
    "VALUES ('$firstname', '$lastname', '$worktel')";
    }
    else if ($funding == "Employer Funding"){
    $query = "INSERT INTO enrolments (fname, lname, worktel)" . 
    "VALUES ('$firstname', '$lastname', '$worktel')";
    }
    }
    else if ($level == "IOSH Managing Safely"){
    if ($funding == "Self Funding"){
    $query = "INSERT INTO enrolments (fname, lname, worktel)" . 
    "VALUES ('$firstname', '$lastname', '$worktel')";
    }
    else if ($funding == "Employer Funding"){
    $query = "INSERT INTO enrolments (fname, lname, worktel)" . 
    "VALUES ('$firstname', '$lastname', '$worktel')";
        }
        }
    if(isset($query)) {
        $result = mysqli_query($dbc, $query) or die ('error querying database');
        mysqli_close($dbc);
    }


    } else {
        if(isset($ErrorsRow) && !empty(implode($ErrorsRow))){
            $Errors = implode(',', $ErrorsRow);
            echo 'some error message'. $Errors; 
        }

    } 
}

暫無
暫無

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

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