请帮助, 通过URL
传递字符串时$_GET
方法不起作用
我收到了以下错误
警告:mysql_fetch_array()期望参数1是资源,给定布尔值。
当我通过ID
方法通过网址访问$_GET
时,它可以正常工作。
同时,当我通过此方法传递字符串(例如:Bihar)时查询不起作用。
如何解决这个问题?
<?php
include('config.php');
$qry = "SELECT districtName FROM pincode_data WHERE stateName =" . $_GET['st']; // here is the issue.. its not works for me.
// $qry = "SELECT districtName FROM pincode_data WHERE stateName =" . $_GET['id']; // This query works
// $qry = "SELECT districtName FROM pincode_data WHERE stateName = 'Bihar'"; // This query works
$result = mysql_query($qry);
while($row = mysql_fetch_array($result))
{
echo "<li><a href='districtview.php?dist=".$row['districtName']."'> ".$row['districtName']."</a></li>";
}
mysql_close();
?>
答案 0 :(得分:0)
<?php
include('config.php');
$qry = "SELECT `districtName` FROM `pincode_data` WHERE
`stateName` ='".$_GET['st']."'";
$result = mysql_query($qry) or die(mysql_error());
while($row = mysql_fetch_array($result))
{?>
<li><a href="districtview.php?dist=<?php echo $row['districtName']?>"><?php echo $row['districtName']?></a></li>
<?php
}
mysql_close();
?>
答案 1 :(得分:0)
我猜stateName
是char
类型,所以你必须制作单个qoutes arraound yout value;
$qry = "SELECT districtName FROM pincode_data WHERE stateName ='" . $_GET['st']."'";
如果你不这样做,你会在mysql中遇到语法错误,这就是你在php中出错的原因。
查询:
$qry = "SELECT districtName FROM pincode_data WHERE stateName =" . $_GET['id'];
有效,因为ID
是一个数字列,不需要单引号。
但您不应该使用已弃用的mysql_*
API。使用mysqli_*
或PDO
准备好的陈述。
答案 2 :(得分:0)
使用查询
$qry = "SELECT districtName FROM pincode_data WHERE stateName ='" . $_GET['st']."'";
因为$ _GET [&#39; st&#39;]是字符串,需要用双引号写入