由于php变量,LIKE子句不起作用

由于php变量,LIKE子句不起作用,php,search,sql-like,Php,Search,Sql Like,这是我的代码…我尝试回显$sql,但它显示“%Search%”…但我想将其用作$Search。。plz帮助 下面是我搜索的全部代码 if(isset($_POST['search'])) { $search=$_POST['search']; $criteria=$_POST['criteria']; $table='alumni'; mysql_real_escape_string($search); if($criteria=='ALL') { $sql="SELECT U

这是我的代码…我尝试
回显$sql
,但它显示“
%Search%
”…但我想将其用作
$Search
。。plz帮助

下面是我搜索的全部代码

if(isset($_POST['search']))

 {

$search=$_POST['search'];

$criteria=$_POST['criteria'];

$table='alumni';

mysql_real_escape_string($search);

if($criteria=='ALL')

{

$sql="SELECT UNAME FROM `alumni` ";

$result=mysql_query($sql); 

if (!$result) {

die('Invalid query: ' . mysql_error());

}

while ($row=mysql_fetch_array($result))

{

echo"<tr><td><a>".$row['UNAME']."</a></td></tr>"; 

}

}

                                    if($criteria=='UNAME' || $criteria=='FNAME' || $criteria=='BATCH')

{

//echo $criteria;

$sql="SELECT UNAME FROM `alumni` WHERE ".$criteria." LIKE '%".$search."%'";

//echo $sql;

$result=mysql_query($sql); 

if (!$result) {

die('Invalid query: ' . mysql_error());

}

while ($row=mysql_fetch_array($result))

{

echo"<tr><td><a>".$row['UNAME']."</a></td></tr>"; 

}

}


}

?>
if(isset($\u POST['search']))
{
$search=$_POST['search'];
$criteria=$_POST['criteria'];
$table='alumns';
mysql\u real\u escape\u字符串($search);
如果($criteria=='ALL')
{
$sql=“从“校友”中选择UNAME”;
$result=mysql\u查询($sql);
如果(!$result){
die('无效查询:'.mysql_error());
}
while($row=mysql\u fetch\u数组($result))
{
回显“$row['UNAME']”;
}
}
如果($criteria=='UNAME'| |$criteria=='FNAME'| |$criteria=='BATCH')
{
//echo$标准;
$sql=“从“校友”中选择UNAME,其中“%$criteria.”类似“%”“%$search.”%”;
//echo$sql;
$result=mysql\u查询($sql);
如果(!$result){
die('无效查询:'.mysql_error());
}
while($row=mysql\u fetch\u数组($result))
{
回显“$row['UNAME']”;
}
}
}
?>

如果使用双引号,则可以将变量放入字符串中,而无需关闭它们

尝试:


通过测试上述代码,似乎没有什么问题,如果您通过
search=Test
您会得到:

SELECT UNAME FROM `alumni` WHERE FNAME LIKE '%Test%'
如果你总是

SELECT UNAME FROM `alumni` WHERE FNAME LIKE '%Search%'
…无论您在搜索表单中填写的值是多少,都表明该表单的工作方式存在问题,或者post数据的组合方式存在问题。您上面发布的代码虽然已经过时,但其工作原理与您从搜索数据库的代码中所期望的一样


如果您可以发布更多有关如何调用或使用此脚本的信息,您可能会从其他人那里得到更准确的答案。

不要使用
mysql\u*
函数,它们已被弃用,请改用
mysqli\u*
。请使用mysqli\uu或PDO,而不要使用不推荐使用的mysql\uu扩展,如果您打印$Search var,您得到的字符串“Search”会更安全吗?例如,如果您输入条件“FNAME”和搜索“text”,您的sql会是什么样子?@BojanKovacevic…它会显示与搜索条件有关的用户名…上面的代码适用于$criteria==ALL..无法显示以下if条件的任何结果。。。!!请帮忙。。!!
SELECT UNAME FROM `alumni` WHERE FNAME LIKE '%Search%'