2017-10-04 124 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); 
     } 
相关问题