我的数据库中的数据有一个名称列表,每个名称都有一个ID。当名称与搜索到的名称相匹配时,我试图做一个简单的搜索来提取人员ID。MYSQL SELECT查询与WHERE不工作
if(isset($_POST['submit'])&& empty($_POST['personName'])==FALSE){
$name=$_POST['personName'];
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
echo "No numeric characters allowed";
}else{
include('connect.php');
if($con==false){
}else if ($con==true){
$cleanName=mysqli_real_escape_string($con,$name);
$getPersonID="SELECT person_ID FROM person WHERE Name='$cleanName'";
$resultGetPersonID=mysqli_query($con,$getPersonID)or die(mysqli_error($con));
if(mysqli_num_rows($resultGetPersonID)>0){
echo "query sucessrful";
}else{
echo "query failed";
}
}
}
}else{
echo "Data entered wrong";
}
HTML
<div class="searchBox">
<form action="getPerson.php" method="POST">
Name: <input id='personName' type="text" name="personName" > <input type="submit" value="Search" id="search" name="submit">
</form>
</div>
我们需要的表结构,以帮助。另外,$ clearName是在哪里初始化的? –
不要试图摆脱像'$ x == false'这样的习惯。大多数方法被设计为返回真实的值,所以你可以做'if($ con)'没有所有的大惊小怪。 – tadman
**警告**:使用'mysqli'时,您应该使用[参数化查询](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)和['bind_param']( http://php.net/manual/en/mysqli-stmt.bind-param.php)将用户数据添加到您的查询中。 **不要**使用手动转义和字符串插值或串联来实现此目的,因为如果您忘记正确地转义某些内容,您将创建严重的[SQL注入漏洞](http://bobby-tables.com/)。 – tadman