Итак, у меня проблемы с проверкой пустого значения. Как я могу решить эту проблему? Я хочу проверить, существует ли 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>
1 ответ
Функция mysqli_real_escape_string
возвращает экранированную строку (как вы можете прочитать в документации здесь http://php.net/manual/en/mysqli.real-escape-string.php), поэтому невозможно ожидать NULL в переменной $category
. Замените эту часть вашего кода
if($data > 1 || $category === NULL)
С этим
if($data > 1 || empty($category))
Похожие вопросы
Новые вопросы
php
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигмальный, динамически типизированный и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.
mysqli_real_escape_string
никогда не вернетсяNULL
. НИКОГДА .$category === NULL
не в том месте. Вам нужно сначала использовать здесьempty() / !empty()
, а затем назначить его.""
или посчитайте длину строки, чтобы убедиться, что в ней что-то есть.