$ _GET方法在通过URL传递字符串时不起作用

时间:2015-04-01 06:26:40

标签: php mysql

请帮助, 通过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();
?>

3 个答案:

答案 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)

我猜stateNamechar类型,所以你必须制作单个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;]是字符串,需要用双引号写入