Php 无法根据需要计算表达式匹配
我需要用PHP实现一个代码,在数据库中为给定的Php 无法根据需要计算表达式匹配,php,regex,Php,Regex,我需要用PHP实现一个代码,在数据库中为给定的$stateID添加一个新城市(传入$\u POST['city'])名称,如果它不存在并返回生成的CityID,否则使用传入的CityID$\u POST['city']。代码如下: $stateID = substr(filter_input(INPUT_POST, 'State'), 0, 2); $city = filter_input(INPUT_POST, 'City', FILTER_VALIDATE_INT); $cityID = N
$stateID
添加一个新城市(传入$\u POST['city']
)名称,如果它不存在并返回生成的CityID,否则使用传入的CityID$\u POST['city']
。代码如下:
$stateID = substr(filter_input(INPUT_POST, 'State'), 0, 2);
$city = filter_input(INPUT_POST, 'City', FILTER_VALIDATE_INT);
$cityID = NULL;
if(!preg_match("/[a-zA-Z]/", $city)){
$cityID = $city;
echo 'City Exists';
}
else{
# If a new city name is entered, store it in database
$params = array('ss', $stateID, $city);
$cityID = $dbh->ExecuteScalar("CALL AddNewCity(?, ?, @outCityID)", $params);
echo 'New City Added';
}
问题是,无论$city
的值是类似于ABC还是类似于123,代码都会回显city Exists
请忽略代码$dbh->ExecuteScalar……。
。它正在使用我定制的数据库处理库
正则表达式语句有什么问题?正则表达式匹配小写或大写字符,如果模式匹配给定主题,则返回1;如果不匹配,则返回0;如果发生错误,则返回FALSE
与过滤器\u验证\u INT一起使用
如果输入ABC
,$city
的值将为false,preg_match(“/[a-zA-Z]/”,false)
将返回0。if语句将检查if(!0)
是否为真,您将看到城市存在
如果输入123
,$city
的值将为123
,preg_match(“/[a-zA-Z]/”,123)
将返回0。if语句将检查if(!0)
是否为真,您将看到城市存在