2017-09-11 63 views
0

美好的一天!我試圖將我的代碼連接到數據庫localhost/phpmyadmin。將PHP連接到MYSQL的錯誤

這是我的代碼:

在register.php文件:

<?php 
    session_start(); 
    require_once('dbconfig/config.php'); 
    //phpinfo(); 
?> 

的config.php文件是在數據庫名稱位於

<!DOCTYPE html> 
<html> 
<head> 
<title>Registration Page</title> 
<link rel="stylesheet" href="css/style.css"> 
</head> 
<body style="background-color:#bdc3c7"> 
    <div id="main-wrapper"> 
    <center><h2>Registration Form</h2></center> 
     <form action="register.php" method="post"> 
      <div class="imgcontainer"> 
       <img src="imgs/avatar.png" alt="Avatar" class="avatar"> 
      </div> 
      <div class="inner_container"> 
       <label><b>Username</b></label> 
       <input type="text" placeholder="Enter Username" name="username" required> 
       <label><b>Password</b></label> 
       <input type="password" placeholder="Enter Password" name="password" required> 
       <label><b>Confirm Password</b></label> 
       <input type="password" placeholder="Enter Password" name="cpassword" required> 
       <button name="register" class="sign_up_btn" type="submit">Sign Up</button> 

       <a href="index.php"><button type="button" class="back_btn"><< Back to Login</button></a> 
      </div> 
     </form> 

     <?php 
      if(isset($_POST['register'])) 
      { 
       @$username=$_POST['username']; 
       @$password=$_POST['password']; 
       @$cpassword=$_POST['cpassword']; 

       if($password==$cpassword) 
       { 
        $query = "select * from userinfotbl where username='$username'"; 
        //echo $query; 
       $query_run = mysqli_query($con,$query); 
       //echo mysql_num_rows($query_run); 
       if($query_run) 
        { 
         if(mysqli_num_rows($query_run)>0) 
         { 
          echo '<script type="text/javascript">alert("This Username Already exists.. Please try another username!")</script>'; 
         } 
         else 
         { 
          $query = "insert into userinfotbl values('$username','$password')"; 
          $query_run = mysqli_query($con,$query); 
          if($query_run) 
          { 
           echo '<script type="text/javascript">alert("User Registered.. Welcome")</script>'; 
           $_SESSION['username'] = $username; 
           $_SESSION['password'] = $password; 
           header("Location: homepage.php"); 
          } 
          else 
          { 
           echo '<p class="bg-danger msg-block">Registration Unsuccessful due to server error. Please try later</p>'; 
          } 
         } 
        } 
        else 
        { 
         echo '<script type="text/javascript">alert("DB error")</script>'; 
        } 
       } 

此行發生錯誤。但我不知道到底發生了什麼。

   else 
       { 
        echo '<script type="text/javascript">alert("Password and Confirm Password do not match")</script>'; 
       } 

      } 
      else 
      { 
      } 
     ?> 
    </div> 
</body> 
</html> 

然而,在本地主機頁面,我得到一個錯誤說「本地主機說:DB錯誤」 我不知道什麼是wron用它做什麼。

+0

,你intiate'$ con'可變@Rolly – Pritamkumar

+0

'回聲「<腳本類型= 「text/javascript」> alert(「這個用戶名已存在..請嘗試另一個用戶名!」)';'這不是一種顯示警告框的方法 –

+0

Localhost只說DB錯誤或其他什麼東西呢?請向我們展示您的配置文件。代碼中還有兩個主要錯誤,即不使用MySQL,它已被棄用,而是使用MySQLi。其次,您將post變量直接傳遞到您的查詢中,這將導致SQL注入。 –

回答

0

這意味着"select * from userinfotbl where username='$username'"查詢沒有找到任何匹配條件或出現錯誤的實體。

Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.

http://php.net/manual/en/mysqli.query.php

使用mysqli_error,看看你得到了什麼錯誤。

實施例:

if($password==$cpassword) 
{ 
    $query = "select * from userinfotbl where username='$username'"; 
    //echo $query; 
    $query_run = mysqli_query($con,$query); 
    //echo mysql_num_rows($query_run); 
    if(!empty($query_run)) { 
     ... 
    } elseif ($query_run === false) 
     echo mysqli_error($con); 
    else 
     echo '<script type="text/javascript">alert("DB error")</script>'; 
} 
+0

我試圖在代碼上運行它。錯誤現在說: 解析錯誤:語法錯誤,意外'回聲'(T_ECHO)在C:\ xampp \ htdocs \ SampleLoginPage \ register.php在47行。當我試圖找到第47行。我發現代碼「 echo mysqli_error($ con);「 – Rolly

+0

這是我的代碼附加的文件。請弄清楚我的代碼有什麼問題。請幫幫我。謝謝! https://drive.google.com/file/d/0Bypc2WaMNu76Yi1KU0IwN0FPYmM/view?usp=drive_web – Rolly

0

必須使用mysqli_error,以檢查是否有在連接或查詢錯誤的錯誤