Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 警告:mysql#u query()[function.mysql query]:拒绝用户访问''@';本地主机';(使用密码:否)_Php_Mysql - Fatal编程技术网

Php 警告:mysql#u query()[function.mysql query]:拒绝用户访问''@';本地主机';(使用密码:否)

Php 警告:mysql#u query()[function.mysql query]:拒绝用户访问''@';本地主机';(使用密码:否),php,mysql,Php,Mysql,早上好, 我正在用mysql尝试我的第一个php代码。我已经在两台服务器上测试过了,一台托管在其他地方,还使用了一台本地wamp服务器,结果是一样的,所以我必须在创建连接的代码中或稍后运行查询时有一些不好的地方 对于wamp,我已经验证了php.ini和MySQL权限,在代码中我使用了这里声明的凭据。我希望得到一些指导 <?php // Function: connect to a database. Returns the database connection. fu

早上好, 我正在用mysql尝试我的第一个php代码。我已经在两台服务器上测试过了,一台托管在其他地方,还使用了一台本地wamp服务器,结果是一样的,所以我必须在创建连接的代码中或稍后运行查询时有一些不好的地方

对于wamp,我已经验证了php.ini和MySQL权限,在代码中我使用了这里声明的凭据。我希望得到一些指导

 <?php

 // Function: connect to a database. Returns the database connection.




  function connect_db($host, $id, $pwd)
  {

  $connection = @mysql_connect('localhost', 'username', 'password')
        or die('connection problem:' . mysql_error());
    mysql_select_db('database_db');
    return $connection;
    if (!$connection)
  {
    print ("internal error " . mysql_errno() );
  }
  }

 //get names from form

$ID = $_POST['ID'];
$Event= $_POST['Event'];
$Date = $_POST['Date'];
$Time = $_POST['Time'];
$Venue= $_POST['Venue'];
$TypeID= $_POST['TypeID'];
$Score= $_POST['Score'];
$Member = $_POST['Member'];

//insert values
$myquery = "INSERT INTO Results(ID, Event, Date, Time, Venue, TypeID, Score, Member )VALUES('$ID', '$Event', '$Date', '$Time', '$Venue', '$TypeID', '$Score', '$Member')";
$answer = mysql_query($myquery);

if (!$answer) {
    $message  = 'Invalid query: ' . mysql_error() . "\n";
    $message .= 'Whole query: ' . $myquery;
    die($message);
}

while ($row = mysql_fetch_assoc($answer)) {
    echo "Your results were entered successfully";
    echo "<br>";
    echo $row['Id'];
    echo $row['Event'];
    echo $row['Date'];
    echo $row['Time'];
    echo $row['Venue'];
    echo $row['TypeID'];
    echo $row['Score'];
    echo $row['Member'];
}

您需要在您的
mysql\u connect
呼叫中将“用户名”和“密码”更改为您的实际凭证

当然,除非这些是您想要的凭据,否则您需要确保用户确实存在并且有访问数据库的权限


作为旁注,不推荐使用
mysql.*
函数,建议使用
mysqli.*
或准备好的语句。

尝试将访问表提供给用户:

grant all On [tabelName] to [userName];
范例

grant all On mysql.* to root;

危险:您正在使用并且应该使用。您也容易受到现代API的影响,因为它会使您更容易从中受益。@Quentin,您能详细说明一下吗?如前所述,这是我第一次接触编程。在这个阶段,我需要修复到数据库的连接。API的事情可以在以后整理,我没有计划发布这部作品。评论中有几个详细的链接。@Joy昆汀在我的回答中提到,你的错误消息说连接没有提供用户名和密码,然而,您的代码中有用户名和密码-您提供了正确的代码和错误消息吗?@Ryan我使用了与上所述相同的用户名和密码。我已经检查过了,用户也拥有数据库的所有权限……但是错误消息说没有使用密码,不是密码错误。我在实际代码中已经这样做了,但我不会将它们粘贴到公共论坛;)然后你需要检查你的凭据。我在消息中发现很奇怪,用户名在代码中是空的,并且我在公共服务器上遇到与本地服务器上类似的问题…(当然,我为每个服务器使用不同的凭据!)你确定没有从其他脚本中得到错误吗?