我有以下PHP代码,当我执行它时,affected_rows返回-1,但是当我在HeidiSQL中运行select时,数据在表中。为什么会这样?
$id = filter_input(INPUT_POST, 'id', FILTER_VALIDATE_INT);
$estatus = filter_input(INPUT_POST, 'estatus');
$larga = filter_input(INPUT_POST, 'larga');
$corta = filter_input(INPUT_POST, 'corta');
$fecha = filter_input(INPUT_POST, 'fecha');
$usuario = $_SESSION['id'];
$query = 'INSERT INTO tarea(oportunidad_id, estatus, usuarioId, tareaTarea, fechaLimite, tareaCorta)'
. 'VALUES(' . $id . ', "' . utf8_decode($estatus) . '", ' . $usuario . ', "' . $larga . '", "' . $fecha .
'", "' . $corta . '")';
$con->query($query) or exit("Error: " . $con->errno . ": " . $con->error);
if ($con->affected_rows > 0) {
echo 'Tarea agregada';
} else {
exit($con->mensaje_error());
}
答案 0 :(得分:0)
if ($result = $con->query($query)){
if($result->num_rows > 0){
echo 'Tarea agregada';
}
} else {
exit($con->mensaje_error());
}
尝试使用num_rows而不是受影响的行。并且您可以在此if语句中执行$ result = $ con>查询,它与$con->query($query) or exit(...
您无法询问受影响行的连接,您必须将结果保存为变量并对该结果执行->affected_rows
。
查询未失败,检查查询失败的方式