我正在尝试在自己的客户门户网站中构建一个简单的搜索脚本,我正在尝试将其构建为通过手机ESN进行搜索。我对php不是很有经验,所以我可能会错过一些小问题,或者犯一个小错误。
无论如何,当你输入手机的任何esn并点击搜索时,它根本没有显示任何结果。这是我正在使用的简单脚本
<?php
$dbserv='********';
$dbuser='********';
$dbpass='********';
$dbdata='********';
$link = mysql_connect($dbserv, $dbuser, $dbpass);
if (!$link) { die('Could not connect: ' . mysql_error());}mysql_select_db($dbdata);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<form action="" method="post">
Search: <input type="text" name="esn" /><br />
<input type="submit" value="Submit" />
</form>
<?php
if (!empty($_REQUEST['esn'])) {
$esn = mysql_real_escape_string($_REQUEST['esn']);
$sql = "SELECT * FROM phones where phoneserial LIKE '%".$esn."%'";
$r_query = mysql_query($sql);
while ($row = mysql_fetch_array($r_query)){
echo 'ESN: ' .$row['phoneserial'].'<br>';
}
}
?>
</body>
</html>
我注意到我之前在这行中犯了一个错误
$esn = mysql_real_escape_string($_REQUEST['esn']);
我喜欢这样
$term = mysql_real_escape_string($_REQUEST['esn']);
然后当你输入一个以A10000开头的14位esn时,它实际上会显示我们数据库中的每个esn而不是搜索到的那个esn,我不知道为什么。
请原谅我,如果这是跛脚,仍在努力学习
答案 0 :(得分:2)
如果$esn
未定义,您将搜索纯通配符(%%
),它将匹配每条可能的记录。看一下这段代码就不那么令人惊讶了:
$sql = "SELECT * FROM phones where phoneserial LIKE '%".$esn."%'";
只需删除$esn
,因为您没有定义$esn
,而是使用$term
。
你真的不应该再使用mysql_函数了。学习如何使用mysqli或PDO和预处理语句而不是转义字符串函数。
答案 1 :(得分:1)
如果你想只找到一个严格的匹配,你应该用这个
替换你的查询$urls = array(
"http://www.google.com",
"https://drive.google.com",
"https://www.youtube.com",
"https://www.facebook.com/me"
);
答案 2 :(得分:0)
请勿使用mysql
,请使用Mysqli
PHP扩展自PHP 5.5.0起已弃用,自PHP 7.0.0起已被删除
最终井表格代码是
<?php
$dbserv='********';
$dbuser='********';
$dbpass='********';
$dbdata='********';
$link = mysqli_connect($dbserv, $dbuser, $dbpass,$dbdata);
if (!empty($_POST['esn'])) {
$esn = mysqli_real_escape_string($link$_POST['esn']);
$sql = "SELECT * FROM phones where phoneserial LIKE '%".$esn."%'";;
$r_query = mysqli_query($link,$sql);
while ($row = mysqli_fetch_array($r_query))
{
echo 'ESN: ' .$row['phoneserial'].'<br>';
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<form action="" method="post">
Search: <input type="text" name="esn" /><br />
<input type="submit" value="Submit" />
</form>
</body>
</html>