2014-09-29 63 views
-1

該腳本試圖計算一個名爲qstns表項的個數:PHP腳本不能正常工作,並顯示錯誤有關的mysqli

<?php 
    $con=mysqli_connect("localhost","root","","QSTNS"); 
    if (mysqli_connect_errno()) { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    //-----------------two variables entered in database------------ 
    $user= mysqli_real_escape_string($con, $_POST['user']); 
    $user1= mysqli_real_escape_string($con, $_POST['user1']); 

    $sql="INSERT INTO student (name,rln,scr)VALUES ('$user1','$user','0')"; 
    if (!mysqli_query($con,$sql)) { 
     die('Error: ' . mysqli_error($con)); 
    } 

    $res=mysqli_query('SELECT COUNT(*) FROM qstns', $con); 
    echo "$res \n"; 
    mysqli_close($con); 
?> 

它產生

Warning: mysqli_query() expects parameter 1 to be mysqli, string given in C:\wamp\www\quiiz_portal\logedin.php on line 27

誰能告訴我是什麼這個PHP腳本錯了嗎?

+1

哪一行是27行? – 2014-09-29 17:51:54

回答

3

假設27行如下:

$res=mysqli_query('SELECT COUNT(*) FROM qstns', $con); 

你有你的參數倒退。應該是:

$res = mysqli_query($con, 'SELECT COUNT(*) FROM qstns'); 

一旦你返回的數據$res所有你所要做的就是分析它。

$row = mysqli_fetch_array($res); 
echo $row[0]; 
+3

不要忘記,'$ res'現在是一個資源,所以你必須解析它才能得到結果。 – 2014-09-29 17:54:37

+0

@Jrod現在它給.. 可捕捉的致命錯誤:mysqli_result類的對象無法轉換爲C:\ wamp \ www \ quiiz_portal \ logedin.php中的字符串27行 – dhruvsharma 2014-09-29 17:57:00

+0

由於@JayBlanchard注意上面,mysqli返回一個mysqli結果對象,因此你不能只是迴應結果。這行很可能導致你的其他問題:'回聲「$ res \ n」;' – Jrod 2014-09-29 17:58:41