2014-01-14 78 views
0

如果用戶發送AGE值null,則不執行。我如何在MySQL中正確編寫如何在mysql語法中檢查用戶值是否爲null?

$result = mysqli_query("select * from ident where FirstName = '$first_name' && $age != '' && Age = $age");

+0

只是澄清:你擔心你的MySQL表年齡列將是NULL,或者PHP變量'$ age'將爲空? – Huey

+0

可能的重複[如何檢查列是否爲空或在MySQL](http://stackoverflow.com/questions/8470813/how-do-i-check-if-a-column-is-empty-或null-in-mysql) – Huey

回答

0

你不在在你的問題非常清楚,所以我將提供兩個PHP MySQL的&:

MySQL的

使用IS NOT NULLReference

SELECT * FROM ident 
    WHERE FirstName = '$first_name' 
    AND Age IS NOT NULL 
    AND Age = $age 

PHP

使用empty()isset()Reference.

if(!empty($age)){ 
    //execute mySQL 
} 
+0

不工作,先生! – user3181614

+0

謝謝我只是刪除了現場製造麻煩! – user3181614

0
SELECT 
    * 
FROM 
    `ident` 
WHERE 
    FirstName = '$first_name' 
    && Age != '' 
    && Age = $age 
    && Age IS NOT NULL; 
0
if ($age !== null) { 
$result = mysqli_query("select * from ident where FirstName = '$first_name' Age = $age"); 
//etc.. 
} 
+0

@ user3181614不用擔心。 – NewInTheBusiness

0

您應該查詢數據庫之前,PHP網頁上檢查。

<?php 
if(!empty($age)) { 
    $result = mysqli_query("select * from ident where FirstName = '$first_name' AND Age = '$age'"); 
} 
?> 
+0

謝謝你Tashi Delek! – user3181614

0

這應該在查詢建設方來完成,你可能要拋出一個異常,如果某些值不被@Huey

滿足預期

PHP 使用is_null()方法或者說

if(isset($age) and !is_null($age) and intval($age) > 0){ 
    $result = mysqli_query("SELECT * FROM ident WHERE FirstName = '$first_name' AND Age = $age"); 
} 
+0

謝謝。扎西德勒克! – user3181614

5

您可以使用

if(!empty($age)){ 
    //do sql operation 
    } 

如果只需要特定的年齡段,還可以添加約束條件。 例如:如果你想年齡介乎18歲至40

if ($_POST["age"] < 18 || $_POST["age"] > 40){ 
    //print error message 
    } 
    else{ 
    //do sql operation 
    } 
+0

我想他是問如何在mySQL查詢中做到這一點。 – Huey

相關問題