查询数据库中的数据

时间:2013-03-14 15:57:16

标签: php html

我正在尝试使用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中给出布尔值

仍然得到上述通知

3 个答案:

答案 0 :(得分: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_ functions

请使用PDO

阅读以下内容:

答案 1 :(得分:2)

除了搬运工的解决方案之外,在你的while循环关闭之前还有一个缺少的引号和半冒号

echo '<br/><br/>
}

应该阅读

echo '<br/><br/>';
}

答案 2 :(得分:0)

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