MySQL查询在php中使用时返回空结果
在PHP脚本中使用以下Like查询时,得到的结果为空MySQL查询在php中使用时返回空结果,php,mysql,Php,Mysql,在PHP脚本中使用以下Like查询时,得到的结果为空 $MasjidName = $_GET['MasjidName']; $Percent = "%"; $search = $Percent.$MasjidName.$Percent; echo $search; $sql = "SELECT * FROM `MasjidMaster` WHERE `MasjidName` LIKE '".$search."'"; // get a product from products ta
$MasjidName = $_GET['MasjidName'];
$Percent = "%";
$search = $Percent.$MasjidName.$Percent;
echo $search;
$sql = "SELECT * FROM `MasjidMaster` WHERE `MasjidName` LIKE '".$search."'";
// get a product from products table
$result = mysql_query($sql) or die(mysql_error());
我也试过以下方法
$result = mysql_query("SELECT * FROM `MasjidMaster` WHERE `MasjidName` LIKE '%moh%'") or die(mysql_error());
下面是我得到的空结果
{"masjids":[{"MasjidName":null,"Address":null,"Latitude":null,"Longitude":null}],"success":1,"masjid":[]}
下面添加的全部代码是我一直在尝试的脚本
<?php
$response = array();
require_once dirname(__FILE__ ). '/db_connect.php';;
$db = new DB_CONNECT();
if (isset($_GET["MasjidName"]))
{
$MasjidName = $_GET['MasjidName'];
$MasjidName = mysql_real_escape_string($MasjidName); // you have to escape your variable here.
$sql = "SELECT * FROM `MasjidMaster` WHERE `MasjidName` LIKE '%$MasjidName%'";
$result = mysql_query($sql) or die(mysql_error());
$response["masjids"] = array();
if (!empty($result)) {
// check for empty result
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_array($result)) {
$row = mysql_fetch_array($result);
$masjid = array();
$masjid["MasjidName"] = $row["MasjidName"];
$masjid["Address"] = $row["Address"];
$masjid["Latitude"] = $row["Latitude"];
$masjid["Longitude"] = $row["Longitude"];
// success
$response["success"] = 1;
// user node
$response["masjid"] = array();
array_push($response["masjids"], $masjid);
}
// echoing JSON response
echo json_encode($response);
} else {
// no product found
$response["success"] = 0;
$response["message"] = "No product found";
// echo no users JSON
echo json_encode($response);
}
} else {
// no product found
$response["success"] = 0;
$response["message"] = "No product found";
// echo no users JSON
echo json_encode($response);
}
} else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
// echoing JSON response
echo json_encode($response);
}
?>
试试这个:
$MasjidName = $_GET['MasjidName'];
$MasjidName = mysql_real_escape_string($MasjidName); // you have to escape your variable here.
$sql = "SELECT * FROM `MasjidMaster` WHERE `MasjidName` LIKE '%$MasjidName%'";
$result = mysql_query($sql) or die(mysql_error());
试用
$sql = "SELECT * FROM MasjidMaster WHERE MasjidName LIKE '".$search."'";
我尝试了SELECT*从像“s%”这样的城市客户那里代码>它给了我完美的结果。但当我尝试从'Customers'中选择*,其中'City'类似于's%'代码>它给了我一个空结果
只需删除”
并尝试一下。希望对您有所帮助。没有WHERE子句,它是否可以正常工作?请在这里打印SELECT*的结果,从MasjidMaster那里获得,MasjidName
1)从不使用mysql
开始。使用mysqli
或PDO
。2) 你的代码不安全。任何人都可以插入您的查询。3) 也许没有这种情况的记录。尝试使用num\u行
-如果是0
,则没有结果,您的查询也可以。重复http://stackoverflow.com/questions/23948102/mysql-like-query-fails-in-php.
:)@michael我在没有WHERE子句的情况下尝试过它,但在没有WHERE子句的情况下它会返回结果。我也在MySQL中测试了Like查询,它也会返回结果。什么不起作用?一些错误消息?您能否提供表格中的完整代码和示例数据。我给你的这段代码非常简单,应该可以使用。添加的脚本请删除该行$row=mysql\u fetch\u array($result)代码>