Php 无法使用准备好的语句进行mysql查询

Php 无法使用准备好的语句进行mysql查询,php,mysql,Php,Mysql,我正在努力理解我在这个问题上的错误所在 $query = "INSERT INTO turni (data, utenteId, turno_ceduto, tipo_turno_ceduto, turno_cercato, note, date) VALUES (?, ?, ?, ?, ?, ?, NOW())"; $stmt = mysqli_prepare($dbc,$query); mysqli_stmt_bind_param($stmt,'sissss', $data, $uten

我正在努力理解我在这个问题上的错误所在

$query = "INSERT INTO turni (data, utenteId, turno_ceduto, tipo_turno_ceduto,
turno_cercato, 
note, date) VALUES (?, ?, ?, ?, ?, ?, NOW())";

$stmt = mysqli_prepare($dbc,$query);
mysqli_stmt_bind_param($stmt,'sissss', $data, $utenteId, $turno_ceduto,
$tipo_turno_ceduto, $turno_cercato, $note);

mysqli_stmt_execute($stmt);
$count = mysqli_stmt_affected_rows($stmt);
为什么$count-1是一个问题

为什么$count是-1

答复

-1表示查询返回了错误

您应该使用检查错误,它将返回上一个错误的字符串描述

您从最后一个mysqli函数获得错误描述,而不是从最后一个mysql错误获得

每次prepare()和execute()之后都应该检查错误,并报告错误

下面是一个例子:

if (($stmt = mysqli_prepare($dbc,$query)) === false) {
    trigger_error(mysqli_error($dbc), E_USER_ERROR);
}
mysqli_stmt_bind_param($stmt,'sissss', $data, $utenteId, $turno_ceduto,
    $tipo_turno_ceduto, $turno_cercato, $note);

if (mysqli_stmt_execute($stmt) === false) {
    trigger_error(mysqli_stmt_error($stmt), E_USER_ERROR);
}
$count = mysqli_stmt_affected_rows($stmt);

mysql错误呢?@user3159187,用mysqli_错误更新你的问题,并显示它的输出。