0

我正在尝试使用 html 表单从我的客户端数据库中检索数据。

谁能告诉我我的代码有什么问题,这个 php 代码从我的数据库中收集数据并返回答案。我对 html/php 非常陌生,任何帮助表示赞赏。

   <?php
      echo $_POST['term']; 
mysql_connect ("localhost", "root","")  or die (mysql_error());
 mysql_select_db ("client");
 $term = $_POST['term'];
 $sql = mysql_query("select * from `client` where first_name like '%".mysql_real_escape_string($term)."%'");
while ($row = mysql_fetch_array($sql))
{
    echo 'ID: '.$row['ID'];
    echo '<br/> First Name: '.$row['first_name'];
    echo '<br/> Last Name: '.$row['last_name'];
    echo '<br/> Phone: '.$row['Phone'];
    echo '<br/><br/>';
    }




?>

    </body>
</html>

注意:未定义索引:第 19 行 C:\xampp\htdocs\getdata.php 中的术语

注意:未定义索引:第 22 行 C:\xampp\htdocs\getdata.php 中的术语

警告:mysql_fetch_array() 期望参数 1 是资源,布尔值在第 24 行的 C:\xampp\htdocs\getdata.php 中给出

仍然收到上述通知

4

3 回答 3

2

这是您的直接问题:

$sql = mysql_query("select * from 'client' where first_name like '%$term%'");

表名周围的引号client不正确。为此使用反引号:

$sql = mysql_query("select * from `client` where first_name like '%$term%'");

你应该保护自己:

$sql = mysql_query("select * from `client` where first_name like '%".mysql_real_escape_string($term)."%'");

但说真的,请保证阅读SQL 注入,并且不要再使用 mysql_ 函数了!

请使用 PDO

阅读这些:

于 2013-03-14T16:02:50.533 回答
2

除了 ppeterka 的解决方案之外,在 while 循环结束之前还有一个缺少引号和分号

echo '<br/><br/>
}

应该读

echo '<br/><br/>';
}
于 2013-03-14T16:06:55.617 回答
0

嗨,快速浏览一下,我会说,错误出在 MySQL 查询本身。您在表名周围使用单引号,我认为这是不正确的。尝试不使用任何引号或使用单个“反引号”或您所称的 - 符号:`

于 2013-03-14T16:03:41.983 回答