我想用preg_match检查输入值。因此,如果用户在输入字段上插入任何内容,preg_match将检查此值,否则返回错误。但是如果没有输入值,sql只保存空字段。
当我在输入字段上插入任何内容时,preg_match运行良好,但如果输入值为空,则此preg_match会在sql上插入任何内容。
这是:
$langu = mysqli_real_escape_string($db, $_POST['langu']);
$relig = mysqli_real_escape_string($db, $_POST['relig']);
if(preg_match("/^([0-9a-zA-Z])+$/i", $langu) || preg_match("/^([0-9a-zA-Z])+$/i", $relig)){
// insert at sql
// If $langu or $relig is empty store empty, but I cannot parsing empty value by preg_match
} else { echo 'error';}
答案 0 :(得分:0)
您可以先检查字符串是否为空:
if(
(!empty($langu) && preg_match("/^([0-9a-zA-Z])+$/i", $langu)) ||
(!empty($relig) && preg_match("/^([0-9a-zA-Z])+$/i", $relig))
) {
(格式化,以便您可以看到条件)