2016-06-29 5 views
0

空の値をチェックするのに問題があります。どうすればこの問題を解決できますか?私は、category_nameがデータベースに存在するかどうかを確認したいと思っています。それは入力が空であるかどうかをチェックしたいのです。ここに私のコードは次のとおりです。空の値のチェックに問題がある

PHP:

<?php 
    error_reporting(E_ERROR); 
    include("../db_config.php"); 
    $category = mysqli_real_escape_string($conn, $_POST['category']); 
    $result = "SELECT * FROM category WHERE category_name='$category'"; 
    $rs = mysqli_query($conn,$result); 
    $data = mysqli_fetch_array($rs); 
    if($data > 1 || $category === NULL) 
    { 
     echo "<script> 
     alert('Category name already exist or the value is empty.'); 
     window.location.href='category.php'; 
     </script>"; 
    } 

    else 
    { 
     $sql[0] = "INSERT INTO category (category_name) VALUES ('$category')"; 
     if(mysqli_query($conn, $sql[0])) 
     { 
       header("Location:category.php"); 
       exit(); 
     } 
     else 
     { 
     echo "ERROR: Could not able to execute $sql[0]. " . mysqli_error($conn); 
     } 
    $conn->close(); 
    } 
?> 

HTML:

<form action="category_insert.php" method="post" enctype="multipart/form-data"> 
     <input type="hidden" name="mode" value="add"> 
     Name:<br /> 
     <input type="text" name="category" placeholder="Category name"><br><br> 
     <input type="submit" value="Submit"><br><br> 
    </form> 
+2

' mysqli_real_escape_string'でコード

if($data > 1 || $category === NULL) 

のこの部分を交換してください。 __NEVER__。 –

+1

'$ category === NULL 'は間違った場所にあります。代わりに 'empty()/!empty()'を最初に使用し、次にそれを代入する必要があります。 –

+0

カテゴリ入力を**必須**フィールドにします。 –

答えて

1

機能mysqli_real_escape_stringリターンは、文字列をエスケープします(ここではドキュメントhttp://php.net/manual/en/mysqli.real-escape-string.phpで読むことができるよう)のでNULLを期待するのは何の可能性はありません$category変数です。 `NULL`を返すことはありません。この

if($data > 1 || empty($category)) 
+0

ありがとう、その固定。 5分と私はあなたの答えを受け入れることはできません – Achy

関連する問題