欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

pdo为什么不用用户名和密码可以操作成功

程序员文章站 2022-05-12 15:45:33
...
$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();} 


pdo为什么不用用户名和密码可以操作成功 ?我的数据库名和密码都是root,这有关系吗?


回复讨论(解决方案)

你肯定还有一个root用户的密码为空

你肯定还有一个root用户的密码为空


我的数据库名和密码都是root,而且密码不为空。

贴出mysql数据库下user表信息,就知道你的账号信息。

这个应该没有问题吧?

这个应该没有问题吧?


2个root是空密码 一个什么都不用

改密码后,报了 Access denied for user ''@'localhost' to database 'mysql'错误

改密码后,报了 Access denied for user ''@'localhost' to database 'mysql'错误


删掉多余用户 然后看看初始的root权限。。

改密码后还是这样,不用数据库用户名和密码就可以操作成功。。

删掉密码为空的用户,只保留一个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 |
+----+-----------+

还是不行

不知道为什么,必须密码和账号了