2014-10-28 176 views
0

我試圖讓行數從SQL查詢調用未定義的方法mysqli_stmt :: fetchColumn()

require_once("inc/db_const.php"); 
$date=$_GET['date_rdv']; 
$mysqli= new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); 
if($mysqli->connect_errno) 
{ 
    echo "<p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>"; 
    exit(); 
} 
$query_check="SELECT count(*) FROM planning_cl WHERE date_plannig = ?"; 
$statement_check = $mysqli->prepare($query_check); 
$statement_check->bind_param('s',$date); 
$statement_check->execute(); 
$rdv_verif=$statement_check->fetchColumn(); 
echo $rdv_verif; 

返回,但它表明我這個錯誤

r: Call to undefined method mysqli_stmt::fetchColumn() 

可以在任何人給我任何解決方案來解決這個問題

+0

的可能重複[爲什麼PDO fetchColumn()這裏沒有工作(http://stackoverflow.com/questions/16233323/why-is-pdo-fetchcolumn-not在這裏) – Kypros 2014-10-28 08:51:55

+0

嗯,是的,'mysql_stmt'確實沒有一個叫做'fetchColumn'的方法,句號。這不是mysqli的工作原理。請RTFM查看如何實際使用mysqli的示例:http://php.net/manual/en/mysqli.quickstart.prepared-statements.php – deceze 2014-10-28 09:19:00

回答

1

沒有mysqli_stmt::fetchColumn()在庫MySQLi看Documentation這是一個PDO 方法。

對於MySQLi的使用mysqli_stmt_num_rows ()

$rdv_verif=$statement_check->mysqli_stmt_num_rows(); 
echo $rdv_verif; 
0

您需要使用$statement_check->fetch();

require_once("inc/db_const.php"); 
$date=$_GET['date_rdv']; 
$mysqli= new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); 
if($mysqli->connect_errno) 
{ 
    echo "<p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>"; 
    exit(); 
} 
$query_check="SELECT count(*) as cnt FROM planning_cl WHERE date_plannig = ?"; 
$statement_check = $mysqli->prepare($query_check); 
$statement_check->bind_param('s',$date); 
$statement_check->execute(); 
$line=$statement_check->fetch(PDO::FETCH_ASSOC); 
$rdv_verif = $line['cnt'] 
echo $rdv_verif; 
0

作爲一個類似的問題看出:

Why is PDO fetchColumn() not working here


如果你想獲得的行數返回使用rowCount

// ... 
$rows = $stmt->rowCount(); 

echo 'Rows found '.$rows; 
// ... 

哪一世ŝ得到你需要的行數的最適當的方式,所以你的情況:

$rdv_verif=$statement_check->rowCount();