2013-07-30 88 views
0

我有這個腳本來連接我的數據庫,當我使用它時我得到錯誤500。PHP的mysqli腳本錯誤500

我試圖跟蹤這些錯誤,我認爲它在這行:while ($row = $stmt->fetch_assoc())

但我看了看例子,其同樣是我的。

這裏是我的代碼感謝幫助:

<?php 


    $mysqli = new mysqli(*MY DB DETAILS*); 

    if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
    } 

    $sql = "SELECT * FROM comments WHERE workout_name =? AND user =?"; 

    $stmt = $mysqli->prepare($sql) or trigger_error($mysqli->error."[$sql]"); 

    $stmt->bind_param('ss', $workout_name, $user); 

    $workout_name = $_GET['workout_name']; 
    $user = $_GET['user']; 

    $stmt->execute(); 

    if ($stmt) 
    { 
     while ($row = $stmt->fetch_assoc()) 
    { 
     $response["name"] = $row["workout_name"]; 
     echo json_encode($response); 
    } 

      $response["success"] = 1; 

      // echoing JSON response 
      echo json_encode($response); 
    } 

    else 
    { 
     $response["success"] = 2; 

      // echoing JSON response 
     echo json_encode($response); 
    } 

?> 

UPDATE:

我不得不改變$row = $stmt->fetch_assoc()

如下所述:

How to remove the fatal error when fetching an assoc array

+0

爲什麼你沒有啓用錯誤顯示?我沒有看到作爲數組初始化$ response變量。 –

+0

檢查錯誤日誌 –

+0

查看您的網絡服務器錯誤日誌以查找錯誤500的含義。 – Crontab

回答

0

在你做這一行

$stmt->bind_param('ss', $workout_name, $user); 

必須設置$ workout_name和$用戶包含值。 如

$workout_name = 'pumping iron'; 
$user = 'Arnold Schwarzenegger'; 
$stmt->bind_param('ss', $workout_name, $user); 

在你的情況,你甚至還沒有建立這些變量呢。我假設你正在得到500錯誤,因爲mysqli代碼執行BANG試圖找到非存在變量來加載數據。

+1

@Crontab ???你糾正了我對阿尼斯姓氏的拼寫,這與答案無關,但留下了一個拼寫錯誤的可能性和一個缺失的完整的中止與我之間。你是真的嗎? – RiggsFolly

+0

這就是我在工作中讓我的機器解鎖5分鐘所得到的結果。道歉。 – Crontab

+0

@Crontab沒問題,這讓我發笑或寧可笑。 – RiggsFolly