Home >Backend Development >PHP Tutorial >pdo为什么不用用户名和密码可以操作成功
$dsn = "mysql:host=localhost;dbname=test"; try{ $pdo = new PDO($dsn); echo "连接成功"; }catch(PDOException $e){ echo "连接失败".$e->getMessage();}try{ $pdo->beginTransaction(); $goodprice = 5; $id_out = 15; $id_in =16; $sql1 ="update price set goodprice = goodprice -{$goodprice} where id ={$id_out}"; $sql2 ="update price set goodprice = goodprice +{$goodprice} where id ={$id_in}"; if(!$affectd_rows =$pdo->exec($sql1)){ throw new PDOException("{$id_out}转出失败"); } if(!$affectd_rows =$pdo->exec($sql2)){ throw new PDOException("{$id_in}转入失败"); } $pdo->commit(); echo "提交成功";}catch(PDOException $e){ echo $e->getMessage(); $pdo->rollback();}
你肯定还有一个root用户的密码为空
你肯定还有一个root用户的密码为空
贴出mysql数据库下user表信息,就知道你的账号信息。
这个应该没有问题吧?
这个应该没有问题吧?
改密码后,报了 Access denied for user ''@'localhost' to database 'mysql'错误
改密码后,报了 Access denied for user ''@'localhost' to database 'mysql'错误
改密码后还是这样,不用数据库用户名和密码就可以操作成功。。
删掉密码为空的用户,只保留一个root用户,密码为root的那个,看看还能不能连接上
mysql> select user,password,host from mysql.user;
+------+-------------------------------------------+-----------+
| user | password | host |
+------+-------------------------------------------+-----------+
| root | *615C20A218B2D0A3259776CEDF21E8E295121158 | 127.0.0.1 |
| root | *615C20A218B2D0A3259776CEDF21E8E295121158 | ::1 |
+------+-------------------------------------------+-----------+
2 rows in set (0.00 sec)
mysql> select * from price;
+----+-----------+
| id | goodprice |
+----+-----------+
| 15 | 125 |
| 16 | 121 |
| 17 | 15 |
+----+-----------+
还是不行
不知道为什么,必须密码和账号了