2017-09-01 133 views
-5
$sql = "INSERT INTO `employee_master` (em_first_name, em_middle_name, em_last_name, em_gender, em_DOB, em_DOJ, em_mobile_no, em_alternate_mobile_no, em_landline_no, em_permanent_address, em_corresponding_address, em_email_id) VALUES(

     '" . $params["txtFirstName"] . "', 
     '" . $params["txtMiddleName"] . "', 
     '" . $params["txtLastName"] . "', 

     '" . $params["selGender"] . "', 
     '" . $params["txtDOB"] . "', 
     '" . $params["txtDOJ"] . "', 
     '" . $params["txtMobileNo"] . "', 
     '" . $params["txtAlternateMobileNo"] . "', 
     '" . $params["txtLandlineNo"] . "', 
     '" . $params["txtPermanentAddressTextarea"] . "', 
     '" . $params["txtCorrespondingAddressTextarea"] . "', 
     '" . $params["txtEmailID"] . "'); "; 
    //echo $sql; 
    echo $result = mysqli_query($this->conn, $sql) or die("Error to insert User."); 

} 

($('#selReligion').val()== -1)? 「」:$('#selReligion')。val(),如何在php中使用條件運算符

這裏我想使用條件運算符。 Right Now..if selGender爲null它插入-1 但我想插入0或空

+0

您的代碼存在[SQL注入]風險(https://stackoverflow.com/questions/601300/what-is-sql-injection)。您應該使用帶有參數的預準備語句。 – litelite

+0

您已經在使用支持**準備語句的API,並且使用了有界變量輸入,您應該使用帶佔位符(準備語句)的參數化查詢來保護數據庫免受[SQL注入](http://stackoverflow.com/q/60174 /)! 開始使用['mysqli :: prepare()'](http://php.net/mysqli.prepare)和['mysqli_stmt :: bind_param()'](http://php.net/mysqli-stmt .bind-PARAM)。 – Qirel

+0

感謝您的建議。 – Karthik

回答

0

使用三元運算符。它會插入0而不是-1,如你所需。 如果$params["selGender"]不會爲空,那麼它將插入值,否則爲0.您可以根據需要更改條件。

'" . (!empty($params["selGender"])) ? $params["selGender"] : 0 . "', 

編輯:

其他的方式來實現這一目標是:

以一個變量:

$selGender = '0'; 
if(!empty($params["selGender"])) 
    $selGender = $params["selGender"]; 

然後使用這個變量:

'" . $selGender . "', 
+5

「試試這個」並不能給出好的答案。你應該解釋*如何*和*爲什麼*這解決了他們的問題。我推薦閱讀,「[我如何寫出一個好的答案?]」(http://stackoverflow.com/help/how-to-answer) –

+0

上述代碼正在工作。任何其他的東西代碼愛好者 – Karthik

+0

@Karthik你想知道什麼其他的東西? –