2017-10-04 125 views
0

其實我試圖使用MySqli,但它對我不起作用,即使它顯示數據庫已連接,但查詢無法正常工作,甚至沒有發出任何錯誤。我嘗試使用代碼波紋管:MySqLi由於某種原因而不能工作

ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 


    $connect = mysqli_connect("localhost",'dbu', 'password'); 
    if($connect){ 
    echo 'connected'; 
    } 
    else { 
    echo 'Failed:'.mysqli_error(); 
    } 
    mysqli_select_db('dbname',$connect); 

    if($query = mysqli_query("SELECT * FROM `users`")){ 
    $num = mysqli_num_rows($query); 
    while($fetch = mysqli_fetch_array($query)){ 
    echo $id = $fetch['id']; 
    } 
    } 
    else { 
    echo 'error:'.mysqli_error(); 
    } 
+2

你是什麼意思它不工作。你剛纔說查詢工作和數據庫已連接 – Akintunde007

+0

對不起,我的意思是數據庫連接,但查詢不工作..這是我在問題中修復的錯字。 – SimulationCode

+0

嘗試mysqli_connect(「127.0.0.1」,「dbu」,「password」,「dbname」);並刪除mysqli_select_db() – shashi

回答

0

打開錯誤您在有誤差函數。更改您的代碼

$connect = mysqli_connect("localhost",'dbu', 'password'); 
    if($connect){ 
    echo 'connected'; 
    } 
    else { 
    echo 'Failed:'.mysqli_error(); 
    } 
    mysqli_select_db($connect,'dbname'); // <-------change this 

    if($query = mysqli_query($connect,"SELECT * FROM `users`")){ //<---------------change this 
    $num = mysqli_num_rows($query); 
    while($fetch = mysqli_fetch_array($query)){ 
    echo $id = $fetch['id']; 
    } 
    } 
    else { 
    echo 'error:'.mysqli_error(); 
    } 
+0

非常感謝。它解決了我的問題。每次我們需要發送連接標識時,我們都會提供 – SimulationCode

+0

。如果你使用$ mysqli = new mysqli('localhost','dbu','password','dbname');作爲對象,那麼不需要每次都添加,請檢查我的答案以及 – Abhijit

+1

@Abhijit自己的選擇要麼使用'程序方式'或'面向對象的方式' –

0

您在如何選擇數據庫時遇到問題。第一個參數是鏈接,而第二個是名

mysqli_select_db($connect, 'db_name'); 

另外,您可以作爲第四個參數傳遞數據庫

$connect = mysqli_connect("localhost",'dbu', 'password','db_name'); 

而且同樣的問題是與查詢

mysqli_query($connect, $query);//the first parameter is the link while second is the query itself 

$query = mysqli_query($connect, "SELECT * FROM `users`"); 

$ query是查詢本身。也不要忘記使用預處理語句時,你有,語句的where子句,也當你插入值,以及刪除

0

mysqli_query語法之前開始 https://www.w3schools.com/PhP/func_mysqli_query.asp

你的選擇查詢其編寫代碼語法問題,請更改像下面,

$query = mysqli_query($connect, "SELECT * FROM `users`") //connection paramter missing 

可能,這將有助於

0
ini_set('display_errors', 1); 
    ini_set('display_startup_errors', 1); 
    error_reporting(E_ALL); 
    //Open a new connection to the MySQL server 

    $mysqli = new mysqli('localhost','dbu','password','dbname'); 

    //Output any connection error 
    if ($mysqli->connect_error) { 
     die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error); 
    } 

    //MySqli Select Query 
    $results = $mysqli->query("SELECT * FROM users"); 

    while($row = $results->fetch_assoc()) { 
     echo $row["id"]; 
    } 


    // Frees the memory associated with a result 
    $results->free(); 

    // close connection 
    $mysqli->close(); 

這對我的工作,請檢查

+0

@SimulationCode:請試試這個。 – Abhijit

0

嘗試使用此。

$con = mysqli_connect("localhost","my_user","my_password","my_db"); 

// Check connection 
if (mysqli_connect_errno()) 
  { 
  echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
  } 
0

你的方法pparameters的。爲了是錯誤的 試試這個

ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 

     $connect = mysqli_connect("localhost",'dbu', 'password'); 
     if($connect){ 
      echo 'connected'; 
     } 
     else { 
      echo 'Failed:'.mysqli_error($connect); 
     } 
     mysqli_select_db($connect,'dbname'); 

     if($query = mysqli_query($connect,"SELECT * FROM `users`")){ 
      $num = mysqli_num_rows($query); 
      while($fetch = mysqli_fetch_array($query)){ 
       echo $id = $fetch['id']; 
      } 
     } 
     else { 
      echo 'error:'.mysqli_error($connect); 
     } 
相關問題