PHP mysqli脚本错误500

时间:2013-07-30 20:16:58

标签: php database 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);
    }

?>

更新

我必须更改$row = $stmt->fetch_assoc()

如下所述:

How to remove the fatal error when fetching an assoc array

1 个答案:

答案 0 :(得分:0)

在您执行此行之前

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

您必须设置$ workout_name和$ user才能包含值。 例如

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

在你的情况下,你还没有创建这些变量。我假设你得到500错误,因为mysqli代码BANG试图找到非现有变量来加载数据。