>  기사  >  백엔드 개발  >  pdo为什么不用用户名和密码可以操作成功

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

WBOY
WBOY원래의
2016-06-20 12:48:25963검색

$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으로 문의하세요.