2016-08-22 52 views
0

嗨,我寫了一個函數來檢查我的數據庫重複名稱之前進入。我嘗試過三種不同的方法來捕獲重複條目的數量,但數字總是回到零。我最近的代碼在下面。數據庫重複的名稱檢查numrows總是返回爲0

function check_item_name($item_id, $name) { 

    global $DBConnect; 

$get_name = $DBConnect->stmt_init(); 
$query = "SELECT name 
      FROM item_name 
      WHERE item_id = ? AND name = ? AND end_date IS NULL "; 
$get_name->prepare($query); 
$get_name->bind_param("is", $item_id , $name); 
$get_name->execute(); 
$get_name->bind_result($name); 
$get_name->store_result(); 
$result = $get_name->get_result(); 

if($result->num_rows > 0){ 
    $success = 1; 
} else { 
    $success = 0; 
} 

return $success; 
} 

所以我現在有試過,但仍然是numRows行爲零,存在有相同的條目約十現在這麼肯定不應該是零。

function check_item_name($item_id, $name) { 

    global $DBConnect; 

$get_name = $DBConnect->stmt_init(); 
$query = "SELECT count(1) 
      FROM item_id 
      WHERE item_id = ? AND name = ? AND end_date IS NULL "; 
$get_name->prepare($query); 
$get_name->bind_param("is", $item_id, $name); 
$get_name->execute(); 
$get_name->bind_result($name); 
$get_name->fetch(); 
if ($name){ 
    $success = 1; 
} else { 
    $success = 0; 
} 
var_error_log("------success-------------"); 
var_error_log($success); 

return $success; 
} 
+0

有了這個特殊的代碼,問題是你不能同時使用bind_result和store_result ant。除此之外還有其他問題。檢查正確的方法在這裏︰https://phpdelusions.net/mysqli/check_value –

+0

謝謝生病嘗試它現在:) – troggy69

+0

對不起芽它沒有工作仍然reurning 0 :( – troggy69

回答

0

很多道歉,下面的代碼完美工作,我只需要調整我的ajax調用它。感謝YourCommonSense尋求答案。

function check_item_name($item_id, $name) { 

global $DBConnect; 

$get_name = $DBConnect->stmt_init(); 
$query = "SELECT count(1) 
     FROM item_id 
     WHERE item_id = ? AND name = ? AND end_date IS NULL "; 
$get_name->prepare($query); 
$get_name->bind_param("is", $item_id, $name); 
$get_name->execute(); 
$get_name->bind_result($name); 
$get_name->fetch(); 
if ($name){ 
    $success = 1; 
} else { 
    $success = 0; 
} 

return $success; 
}