插入到表使用PHP和准备好的声明中得到响应码500

2019年7月4日 13点热度 0条评论 来源: Odai Mohammed

我尝试使用下面的PHP代码插入一行到表:插入到表使用PHP和准备好的声明中得到响应码500

$sql = "INSERT INTO `user_sessions`(`email`, `ip_address`, `location`, `lat`, `lng`, `device_type`, `device_imei`, `login_date`, `login_time`, `active`) VALUES (?,?,?,?,?,?,?,?,?,?);"; 

       $stmt2 = mysqli_stmt_init($con); 

       if(!mysqli_stmt_prepare($stmt2, $sql)){ 
        $data['result'] = "SQL error"; 
        echo json_encode($data); 
        exit(); 
       } else { 

        mysqli_stmt_bind_param($stmt2, "sssddsssss", $email, $ip, $city, $lat, $lng, $user_device, $user_device_imei, $user_date, $user_time, "1"); 

        mysqli_stmt_execute($stmt2); 


        $data['result'] = "login success"; 
        $data['user_id'] = $row['user_id']; 
        echo json_encode($data); 
        exit(); 
       } 

我不断收到响应代码500是服务器内部错误根据我的研究

  • 我正在使用远程服务器。
  • 这是我的login.php脚本的一小部分,当本节被注释掉时,它可以正常工作 。
  • $ lat和$ lng是浮点数并且在我的数据库中有一个浮点类型(23,19)。

有什么建议吗?


===========解决方案如下:

的问题是在第11行:

mysqli_stmt_bind_param($stmt2, "sssddsssss", $email, $ip, $city, $lat, $lng, $user_device, $user_device_imei, $user_date, $user_time, "1"); 

的最后一个参数是 “1”,但mysqli_stmt_bimd_param()只接受变量作为参数。

    原文作者:Odai Mohammed
    原文地址: https://stackoverflow.com/q/46597401
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。