从MySQL检索字符串

时间:2012-05-15 02:14:03

标签: php mysql

我在这里

  <table align="center">
  <tr>
     <td>ID No</td><td>:</td>
     <td><input type="text" name="idno" size="10px" maxlength="15px" ></td>
     <td><input type="submit" value="Search ID No." name="search"></td>
    </tr>
  </table>

  <?php
    include('connect.php');
    $sql="select * from stud where ID_No='$_POST[idno]';";
    $result=mysql_query($sql);
        $s=mysql_fetch_array($result);

     $addr = $s[Home_addr];
     echo"$addr";
   ?>

如何获取整个地址?

此脚本仅返回数据库中的第一个单词。

3 个答案:

答案 0 :(得分:1)

您需要遍历数据:

<?php
include('connect.php');
$idno = (integer) $_POST['idno'];
$sql="select * from stud where ID_No='$idno';";
$result=mysql_query($sql);
while ($s=mysql_fetch_array($result)) {
    $addr = $s['Home_addr'];
    echo "$addr";
}
?>

另外,请不要使用mysql_*函数来编写新代码。它们已不再维护,社区已经开始deprecation process。请参阅red box?相反,您应该了解prepared statements并使用PDOMySQLi。如果您无法确定哪个,this article会对您有所帮助。另请参阅Why shouldn't I use mysql functions in PHP?

答案 1 :(得分:1)

迭代mysql_fetch_array

<?php
    include('connect.php');
    $sql="select * from stud where ID_No='$_POST[idno]';";
    $result=mysql_query($sql);
    while($s=mysql_fetch_array($result))
    {

     $addr = $s[Home_addr];
     echo"$addr";
    }
   ?>

答案 2 :(得分:1)

抱歉,不在话题。但请不要将$ _POST数组中的用户输入直接放入查询中。您需要首先通过mysql_real_escape_string()传递它,否则您将容易受到SQL注入攻击。

此外,关联数组的键是字符串,所以请引用它们:

$s['Home_addr']

$s[Home_addr]

在后者中,PHP将首先尝试将Home_addr视为一个常量,但是如果没有找到它,它将会像对待字符串一样对待它,因此它确实有效,但它不可靠,可能更慢,而且完全错误。