我的PHP准备语句不起作用(在布尔上调用成员函数bind_param())

时间:2017-07-24 07:26:27

标签: javascript php jquery mysql sql

我试图用AJAX将数据插入到我的一个表中。

这是我的PHP代码:

include '../data/header.php'; //Here I get my DB-Connection Data from (username etc.)
$usernameToAdd = $_POST["usernameToAdd"];
$groupId = $_POST["groupId"];

$conn = new mysqli($dbserver, $dbuser, $dbpassword, $dbname);
$stmt = $conn->prepare("SELECT id FROM user WHERE username=?;");
$stmt->bind_param("s", $usernameToAdd);
$stmt->execute();
$stmt->bind_result($id);

if($stmt->fetch() > 0) {
    $stmtInsert = $conn->prepare("INSERT INTO group_membership (userId, groupId) VALUES (?, ?);");
    $stmtInsert->bind_param("ii", intval($id), intval($groupId));
    $stmtInsert->execute();
}

它是一个群组关系表。 userId被添加到groupId。

以下是发布的数据:

groupId 29
usernameToAdd user1

或作为原始数据

groupId=29&usernameToAdd=user1

我想知道我犯了什么错误?用户" user1"肯定存在于表用户中。

如果您需要,我的JavaScript代码也是:

function addUserToGroup(btn){
    var groupId = btn.getAttribute("id").substring(13);
    var usernameToAdd = $("#addToGroup"+groupId).val();

    $.post("groups/addUserToGroup.php",
        {
            groupId: groupId,
            usernameToAdd: usernameToAdd
        },
        function (data, status) {
        });
}

总是给我一个

  

致命错误:在布尔值上调用成员函数bind_param()   在 D:\ xampp \ htdocs \ myCalendar \ groups \ addUserToGroup.php 在线    14

在此行$stmtInsert->bind_param("ii", intval($id), intval($groupId));

我不知道为什么,而且我一直想弄清楚。

1 个答案:

答案 0 :(得分:0)

你可以这样试试

$sql = "INSERT INTO group_membership (userId, groupId) VALUES (?, ?);";
if($query =  $conn->prepare($sql)){
    $stmtInsert ->bind_param("ii", intval($id), intval($groupId));
    $stmtInsert ->execute();
    //rest of code here
}else{
   //error !! don't go further
   var_dump($conn->error);
}

如果有任何错误,那么如果表格field namedatatype不匹配,您将收到有关错误的信息