PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

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

原创
2016-06-20 12:48:25 781浏览

$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 |
+----+-----------+

还是不行

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

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。