【问题标题】:PDO Connect truncated usernamePDO Connect 截断用户名
【发布时间】:2014-12-03 23:35:41
【问题描述】:


我的任务是学习和更新从使用 mysqli 到 PDO 的许多 php 脚本。
由于某些未知原因,当我尝试连接到我们的 mysql 数据库时,它会截断用户名。
这是我的 php:

try{
    $user = "this_is_a_really_really_really_long_user_name";
    echo $user."\n";
    $pass = "StackOverflowExample";
    $DBH = new PDO("mysql:host=localhost;dbname=example", $user, $pass);
}
catch(PDOException $err){echo $err->getMessage(); $error = true;}

回声返回:

this_is_a_really_really_really_long_user_name

然后我的catch语句输出:

SQLSTATE[28000] [1045] Access denied for user 'this_is_a_really'@'localhost' (using password: YES)

如您所见,用户名被截断。 任何帮助将不胜感激。

【问题讨论】:

  • 嗯,你确定 MySQL 真的支持这么长的用户名 - 它在命令行客户端中工作吗?
  • 如果它确实有效,我建议在 bugs.php.net 上提交一个错误 :)
  • 它确实有效,因为我在 mysqli_connect 语句中使用了相同的用户名: $con=mysqli_connect("localhost","example","StackOverflowExample","this_is_a_really_really_really_long_user_name");
  • 很奇怪。在bugs.php.net 上提交错误可能吗?

标签: php mysql pdo


【解决方案1】:

MySQL 用户名最长可达 16 个字符。操作系统用户名,因为它们与 MySQL 用户名完全无关,可能具有不同的最大长度。例如,Unix 用户名通常限制为 八个字符

【讨论】:

  • 你能提供“unix”用户名限制的来源吗?刚刚在 FreeBSD 中添加了 abcdefghijklmnop
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-07
  • 2016-01-06
  • 2017-03-23
  • 2016-10-14
  • 2013-02-06
相关资源
最近更新 更多