【问题标题】:Not returning error message while connecting to MySQL DB [closed]连接到 MySQL DB 时不返回错误消息 [关闭]
【发布时间】:2012-11-30 13:05:08
【问题描述】:

我刚刚学会了如何连接到数据库。但是我故意让错误的用户返回错误。但事实并非如此,它一直在向我表明我是有联系的。

<?php


$mysql_host = 'localhost';
$mysql_user = 'root';
$mysql_pass = '';

@mysql_connect($mysql_host,$mysql_user,$mysql_pass) or die('Sorry');

echo 'Connected';
?>

在这种情况下,它显示已连接,因为我的数据库中有一个名为 root 的用户,但如果我替换为其他任何内容,它仍然显示已连接而不是抱歉。

显然,由于声誉较低,我不能回答我自己的问题,我被要求等待大约 8 小时或编辑我的问题并修复它。 (我希望你们给我打勾,这样我也可以回答:P开玩笑)

所以这里是修复:

当我转到 localhost 链接下的用户概览选项卡时,它显示“用户:任意”、“主机:本地主机”、“权限:使用”。我刚刚删除了那个东西。并且单独保留 pma、linux 和 root 的东西。删除了那个额外的用户(不知道它是怎么来的)并解决了问题。

所以基本上对于任何用户来说,它都是连接和授予访问权限。

我不知道我是否可以回答自己的问题,但既然我想通了,我将其发布出来,以便在他们有需要并且在类似船上时为他们提供帮助。

对不起,谢谢大家:)

【问题讨论】:

  • 去你的本地主机和phpmyadmin试试这个!我没有理由做这样的事情。我之前提出的所有问题都证明我是一个学习者,我的怀疑有时是非常基本的。我完全有权询问它。请不要忘记我们都是人类。我们会犯错误,有时很傻,但错误就是错误!

标签: php mysql sql localhost


【解决方案1】:

首先正如其他人所说,你应该不再使用mysql库了

但就你的问题而言:

mysql_connect($mysql_host,$mysql_user,$mysql_pass) or die('Error'.mysql_error());

另外,“or die”语句不应该用在任何会杀死脚本的东西中,而且通常你想优雅地“死”

【讨论】:

  • 我只是在学习兄弟。这就是视频显示的内容,我跟随他的脚步。我知道 die 会杀死页面,但无论哪种方式都没有。别担心,我会记住你的提示:)
  • @WebMeister 都是好兄弟。我们都必须学习,而且我们都在不断学习,出于学习目的,您仍然可以使用 mysql 库(因为您可以使用大量教程),但是当您尝试查找带有 PDO 扩展的教程时。
  • 哦,我会记住的。
【解决方案2】:

@ 符号正在抑制错误消息。删除它,你会在die()看到消息

Please, don't use mysql_* functions in new code. 它们不再维护,deprecation process 已开始使用。看到red box?改为了解 prepared statements,并使用 PDOMySQLi - 此 article 将帮助您决定使用哪个。

【讨论】:

  • @ 的目的是向服务器和数据库端隐藏错误,但它应该打印抱歉消息对吗?没关系,我删除了 @ 并仍然保持连接。
  • 如果您仍在连接,那么您可能没有为root设置密码
  • 不,我没有,但是我遵循的教程没有设置密码,但是却出现了错误,就像它发生了一样,然后也添加了“@”并且仍然得到它。
  • 您是否在 MySQL 主机上运行 Windows / Linux?
猜你喜欢
  • 1970-01-01
  • 2021-03-20
  • 2011-09-01
  • 1970-01-01
  • 2020-06-04
  • 2012-03-31
  • 1970-01-01
  • 2021-09-27
  • 2021-10-27
相关资源
最近更新 更多