从 MySQL 检索字符串


Retrieving strings from 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";
   ?>

如何获取整个地址?

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

迭代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";
    }
   ?>

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

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

$s['Home_addr']

$s[Home_addr]

在后者中,PHP 将首先尝试将Home_addr视为常量,但当找不到时,它将退回到将其视为字符串,因此它确实有效,但它不可靠,可能更慢,而且完全错误。

您需要遍历数据:

<?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_*函数来编写新代码。它们不再维护,社区已开始弃用过程。看到红框了吗?相反,您应该了解预准备语句并使用PDO或MySQLi。如果您无法决定哪个,本文将为您提供帮助。另请参阅为什么我不应该在 PHP 中使用 mysql 函数?