我正在尝试使用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中给出布尔值
仍然得到上述通知
答案 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查询本身。 您在表名周围使用单引号,我认为这不正确。尝试不使用任何引号或使用单个“反引号”或你所谓的 - 符号:`