Php 输入可以在MAMP上工作,但不能在Web服务器上工作

Php 输入可以在MAMP上工作,但不能在Web服务器上工作,php,mysql,sql,Php,Mysql,Sql,我快疯了。我想将数据发送到db Web服务器上的数据库(PHP7.2,phpMyAdmin): 但是数据没有到达我的db Web服务器上的数据库,但是在我的本地MAMP上一切都很好-它可以工作,在我的本地主机上我可以填充数据 我可以从我的db Web服务器获取数据(旧数据或手动输入数据)。因此,连接也起作用。但我在Web服务器上的错误日志显示: PHP警告:mysqli_connect():(HY000/1045):第3行/xx/xxx/public_html/notice/conn_web_n

我快疯了。我想将数据发送到db Web服务器上的数据库(PHP7.2,phpMyAdmin):

但是数据没有到达我的db Web服务器上的数据库,但是在我的本地MAMP上一切都很好-它可以工作,在我的本地主机上我可以填充数据

我可以从我的db Web服务器获取数据(旧数据或手动输入数据)。因此,连接也起作用。但我在Web服务器上的错误日志显示:

PHP警告:mysqli_connect():(HY000/1045):第3行/xx/xxx/public_html/notice/conn_web_notiz.PHP中的用户“user”@“localhost”(使用密码:YES)的访问被拒绝

第3行:

$db = mysqli_connect("localhost", "user", "password", "name-of-database");
在StackOverflow上,我发现一些输入,如:cPanel(在我的Web服务器上)在密码的特殊字符方面有问题。所以我设置了一个简单的。但是:为什么我可以阅读表格的内容而不填写


我必须说:它工作得很好,但突然出现了一些问题,我可以解决这些问题,但不能解决数据输入。

看起来您在Web服务器上使用的身份验证过程与MAMP中使用的相同。这是一种冲突

本质上

'user'@'localhost'
在MAMP上使用,因为您正在本地运行数据库。迁移到Web服务器时,需要访问Web服务器而不是本地主机。这可以防止跨站点安全漏洞


虽然它写得有点奇怪,但你可以尝试一些类似的方法来更好地理解它们之间的区别。您应该在PHPmyAdmin中查找您的Web服务器,以了解如何处理您的凭据。

您可以在服务器上运行此SQL请求:“显示对“用户”@“本地主机”的授权;”?警告:您完全可以使用参数化的预处理语句,而不是手动生成查询。它们由或提供。永远不要相信任何形式的输入!即使您的查询仅由受信任的用户执行。我有2个不同的MAMP和webserver登录文件(用户是我的威胁的占位符)。并且:我可以读取数据库的内容-因此我可以连接,这意味着:连接正常,登录正确(Mamp只有:root,root…)@Inazo:I为用户设置所有权限,但为“用户”@“本地主机”显示授权;表示,用户具有noch权限。我真的不明白这些消息。@mac mamp:问题不在于“用户”部分,而在于“本地主机”部分localhost'在驻留在本地计算机上的MAMP中的开发服务器上工作。问题是,当您将帐户迁移到Web服务器时,需要用与Web服务器地址匹配的服务器标识替换该“localhost”位。有时默认为“127.0.0.1”,有时更复杂。你看过我之前评论中的博文了吗?
'user'@'localhost'