[英]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.