PDO查询不成功!

yoshikis 2014-09-19 11:35:42
代码如下:
<html>
<meta type="text/html" charset=utf8>
<form action="form.php" method="POST">
<p>名字: <input type="text" name="name" /></p>
<p>密码: <input type="password" name="password" /></p>
<input type="submit" />
</form>
<?php
error_reporting(0);
$dsn = "mysql:host=localhost;dbname=liuyan";
$db = new PDO($dsn, 'root', 'root');
$name = $_POST['name'];
$password = md5($_POST['password']);
//$date = date("Y-m-d H:i:s");
$sql = "select * from admin where user_name=? and password=?";
$stm = $db->prepare($sql);
$stm->execute(array($name,$password));
$rs=$stm->fetch();
var_dump($rs);
if(empty($rs)){
echo "<script>alert('查询失败');</script>";
} else{
echo "<script>alert('查询成功');</script>";
}
?>
</html>


admin表


现在问题是:fetch取出来用empty判断返回false,为啥会这样?
...全文
164 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yoshikis 2014-09-19
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
说明没有出现错误 因此可以认为你的表中没有符合条件的记录
字段长度定少了,md5加密后的密码长度是32位,我只给了30位,所以密码少了2位!谢谢各位!
xuzuning 2014-09-19
  • 打赏
  • 举报
回复
说明没有出现错误 因此可以认为你的表中没有符合条件的记录
yoshikis 2014-09-19
  • 打赏
  • 举报
回复
引用 3 楼 xuzuning 的回复:
注释掉 error_reporting(0); 在 16、17 行后面加入 print_r($db->errorinfo());
加了大神,输出:Array ( [0] => 00000 [1] => [2] => ) 说明什么问题?
yoshikis 2014-09-19
  • 打赏
  • 举报
回复
引用 2 楼 fjufo 的回复:
$sql = "select * from admin where user_name=? and password=?"; 这句查询什么?
查询admin表中是否有该用户!通过用户名和md5加密后的密码
xuzuning 2014-09-19
  • 打赏
  • 举报
回复
注释掉 error_reporting(0); 在 16、17 行后面加入 print_r($db->errorinfo());
fjufo 2014-09-19
  • 打赏
  • 举报
回复
$sql = "select * from admin where user_name=? and password=?"; 这句查询什么?
yoshikis 2014-09-19
  • 打赏
  • 举报
回复
大神快来啊。。。

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧