2014-04-28 30 views
-1

我有數據庫1和的Database2拒絕訪問用戶「」 @「localhost」的數據庫

數據庫1這是我的主要項目不能正常工作,但是當我用的Database2,它的工作原理。但是,我無法修復Database1的錯誤。我很好奇爲什麼Database1不起作用。

這是我的代碼。

<?php 

      require_once("models/config.php"); 
      if (!securePage($_SERVER['PHP_SELF'])){die();} 

      require_once("models/header.php"); 

      if(isset($_POST["product_name"]) && isset($_POST["product_description"]) && isset($_POST["product_price"])) 
      { 
       $sql = "INSERT INTO preapprove (name,descr,price) VALUES ('".$_POST["product_name"]."', '".$_POST["product_description"]."', '".$_POST["product_price"]."')"; 
       $sql_query = mysql_db_query($db_name, $sql) or die(mysql_error()); 
       mysql_close(); 
      } 


      echo " 
      <div class='container'> 
       <div class='col-md-3'>"; 

      include("left-nav.php"); 

      echo " 
       </div> 

       <div id='main'>"; 

      echo resultBlock($errors,$successes); 

      echo " 
       <div id='regbox' class='col-md-9'> 
        <form name='addProducts' action='".$_SERVER['PHP_SELF']."' method='post'> 
        <p> 
         <div class='row'> 
          <div class='col-md-2'> 
           <label>Name</label> 
          </div> 
          <div class='col-md-6'> 
           <input type='text' name='product_name' class='form-control' /> 
          </div> 
         </div> 
        </p> 
        <p> 
         <div class='row'> 
          <div class='col-md-2'> 
           <label>Description</label> 
          </div> 
          <div class='col-md-6'> 
           <textarea class='form-control' rows='3' name='product_description'></textarea> 
          </div> 
         </div> 
        </p> 
        <p> 
         <div class='row'> 
          <div class='col-md-2'> 
           <label>Price</label> 
          </div> 
          <div class='col-md-6'> 
           <input type='text' name='product_price' class='form-control' /> 
          </div> 
         </div> 
        </p> 
        <p> 
         <div class='row'> 
          <div class='col-md-2 col-md-offset'> 
          </div> 
          <div class='col-md-4'> 
           <button type='submit' class='submit btn btn-default'>Submit</button> 
          </div> 
         </div> 
        </p> 
        </form> 
       </div> 
       </div> 
      </div> 
      <div id='bottom'></div> 
      </body> 
      </html>"; 

      ?> 

型號/ DB-的settings.php

<?php 
     /* 
     UserCake Version: 2.0.2 
     http://usercake.com 
     */ 

     //Database Information 
     $db_host = "localhost"; //Host address (most likely localhost) 
     $db_name = "bookstore"; //Name of Database 
     $db_user = "root"; //Name of database user 
     $db_pass = "1234"; //Password for database user 
     $db_table_prefix = "uc_"; 

     GLOBAL $errors; 
     GLOBAL $successes; 

     $errors = array(); 
     $successes = array(); 

     /* Create a new mysqli object with database connection parameters */ 
     $mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name); 
     GLOBAL $mysqli; 

     if(mysqli_connect_errno()) { 
      echo "Connection Failed: " . mysqli_connect_errno(); 
      exit(); 
     } 

     //Direct to install directory, if it exists 
     if(is_dir("install/")) 
     { 
      header("Location: install/"); 
      die(); 

     } 

     ?> 

型號/ config.php文件

<?php 
     /* 
     UserCake Version: 2.0.2 
     http://usercake.com 
     */ 
     require_once("db-settings.php"); //Require DB connection 

     //Retrieve settings 
     $stmt = $mysqli->prepare("SELECT id, name, value 
      FROM ".$db_table_prefix."configuration"); 
     $stmt->execute(); 
     $stmt->bind_result($id, $name, $value); 

     while ($stmt->fetch()){ 
      $settings[$name] = array('id' => $id, 'name' => $name, 'value' => $value); 
     } 
     $stmt->close(); 

     //Set Settings 
     $emailActivation = $settings['activation']['value']; 
     $mail_templates_dir = "models/mail-templates/"; 
     $websiteName = $settings['website_name']['value']; 
     $websiteUrl = $settings['website_url']['value']; 
     $emailAddress = $settings['email']['value']; 
     $resend_activation_threshold = $settings['resend_activation_threshold']['value']; 
     $emailDate = date('dmy'); 
     $language = $settings['language']['value']; 
     $template = $settings['template']['value']; 

     $master_account = -1; 

     $default_hooks = array("#WEBSITENAME#","#WEBSITEURL#","#DATE#"); 
     $default_replace = array($websiteName,$websiteUrl,$emailDate); 

     if (!file_exists($language)) { 
      $language = "models/languages/en.php"; 
     } 

     if(!isset($language)) $language = "models/languages/en.php"; 

     //Pages to require 
     require_once($language); 
     require_once("class.mail.php"); 
     require_once("class.user.php"); 
     require_once("class.newuser.php"); 
     require_once("funcs.php"); 

     session_start(); 

     //Global User Object Var 
     //loggedInUser can be used globally if constructed 
     if(isset($_SESSION["userCakeUser"]) && is_object($_SESSION["userCakeUser"])) 
     { 
      $loggedInUser = $_SESSION["userCakeUser"]; 
     } 

     ?> 
+7

您必須先連接到數據庫。您發佈的代碼不相關。你在哪裏連接到數據庫? ** mysql _ ***是** DEPRECATED **請使用'PDO'或'MySQLi' –

+0

強制性評論。請不要將mysql函數用於新代碼,現在已棄用並建議使用[mysqli](http://us2.php.net/mysqli_query)或[PDO](http://us2.php.net/ manual/en/class.pdo.php)通信形式。 –

+0

對不起阿德里安,我已經連接到models/config.php數據庫 – user3480543

回答

1

此錯誤從MySQL服務器宕機。

access denied for user ''@'localhost' to database 

您需要向用戶授予權限。

access denied for user @ 'localhost' to database ''

請運行該SQL來檢查數據庫用戶:
我的例子:

mysql> SELECT Host,User FROM mysql.user; 
+-----------+------------------+ 
| Host  | User    | 
+-----------+------------------+ 
| %   | xxx_user | 
| %   | dda_user2 | 
| 127.0.0.1 | root    | 
| localhost | dddd_user | 
| localhost | asd_user2 | 
| localhost | root    | 
+-----------+------------------+ 
6 rows in set (0.00 sec) 
+1

給一個空用戶,當然;) –

+0

我認爲root擁有做任何事情所需的所有權利,不是嗎? – user3480543

+0

(Mysql localhost!= 127.0.0.1)http://stackoverflow.com/questions/19712307/mysql-localhost-127-0-0-1 – Dezigo

相關問題