Heim > Backend-Entwicklung > PHP-Tutorial > PDO查询不成功!

PDO查询不成功!

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-23 13:49:10
Original
979 Leute haben es durchsucht

代码如下:

<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>
Nach dem Login kopieren


admin表


现在问题是:fetch取出来用empty判断返回false,为啥会这样?


回复讨论(解决方案)

大神快来啊。。。

$sql = "select * from admin where user_name=? and password=?";
这句查询什么?

注释掉 error_reporting(0);
在 16、17 行后面加入 print_r($db->errorinfo());

$sql = "select * from admin where user_name=? and password=?";
这句查询什么?

查询admin表中是否有该用户!通过用户名和md5加密后的密码

注释掉 error_reporting(0);
在 16、17 行后面加入 print_r($db->errorinfo());

加了大神,输出:Array ( [0] => 00000 [1] => [2] => )  说明什么问题?

说明没有出现错误
因此可以认为你的表中没有符合条件的记录

说明没有出现错误
因此可以认为你的表中没有符合条件的记录

字段长度定少了,md5加密后的密码长度是32位,我只给了30位,所以密码少了2位!谢谢各位!
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage