2016-02-09 16 views
0

//這是我的查詢我得到了一個像這樣的錯誤列計數與行中的值計數不匹配。 1,請解決這個錯誤

if(isset($_POST["break-first"])) { 
    $bflag='true'; 
    $bfid=$_POST["break-first"]; 

    $query = "SELECT * FROM food_details WHERE food_id = '$bfid'"; 
    $result = mysqli_query($_SESSION["connect"],$query); 
     if(!$result) { 
      $error = mysqli_error($_SESSION["connect"]); 
      print $error; 
      exit; 
     } 

    while ($row = mysqli_fetch_array($result)) { 
     $bfid =$row["food_id"]; 
     $bf=$row["f_name"]; 
     $bprice= $row["price"]; 
    } 

,我得到這個錯誤「列數並不在行1匹配值計數」

enter image description here

+0

你有沒有調試代碼?通過打印'$查詢'和'$結果'?? –

+1

什麼!爲什麼你將連接變量存儲在'session'中? –

+0

@Mohamed Haseem檢查答案並對答案進行標記並向上投票,這對答案是正確的,對你更具描述性。謝謝。 –

回答

0

變化
$query = "SELECT * FROM food_details WHERE food_id = '$bfid'"; 

$query = "SELECT food_id,f_name,price FROM food_details WHERE food_id = '$bfid'"; 
0

使用下面的代碼:

$mysqli = new mysqli("127.0.0.1", "database_id", "database_password", "database_name"); 

/* check connection */ 
if ($mysqli->connect_errno) 
{ 
    printf("Connect failed: %s\n", $mysqli->connect_error); 
    exit(); 
} 

$query = $mysqli->prepare("SELECT food_id,f_name,price FROM food_details WHERE food_id = ?"); 

$query->bind_param('s',$bfid); 

if (!$query->execute()){ 
    echo $mysqli->error; 
} 

$query->bind_result($food_id,$f_name,$price); 

$query->store_result(); 
$query->fetch(); 

注1:預處理語句是更安全的。注2:如果bfid是整數,可以用'i'代替's'。

+0

我覺得它更有條理!我錯了嗎? –

+0

我也添加了數據庫連接代碼。我猜他正在將它存儲在會話變量中。這是不正確的。 –

0

mysqli_fetch_array()函數獲取一個結果行作爲關聯數組

$row = mysqli_fetch_array($result, MYSQLI_ASSOC); 
    $bfid =$row["food_id"]; 
    $bf=$row["f_name"]; 
    $bprice= $row["price"]; 
相關問題