PHP / MySQL:查询正确执行,受影响的行返回-1

d0n.key

我正在尝试从表中删除一行,并检查它是否有效/是否找到并删除了一行。我用下面的查询可以这样做:DELETE FROM TableName WHERE val1=1 AND val2=2 AND val3=3$conn使用准备和执行功能通过连接发送该代码,它工作得很好。正在查找并删除我要查找的行。但是如果我想检查它是否工作,$conn->affected_rows它会返回-1,这意味着发生了错误。我不明白,错误可能在哪里,affected_rows返回 -1,即使查询已正确执行...

如果您不明白该问题,请随时在评论中提问。

代码:

$query = "DELETE FROM ComTasks WHERE comid=? AND obj=? AND type=0";
$response = paramQuery($conn, $query, array($communityid, $userid), "ss");
echo $conn->affected_rows; //=> -1

function paramQuery($conn, $query, $params, $str){
    if(!is_array($params)) $params = array($params);
    $stmt = $conn->prepare($query);
    if($stmt === false) return -1;
    for($i=0; $i<count($params); $i++){
        $params[$i] = &$params[$i];
    }
    array_unshift($params, $str);
    call_user_func_array(array($stmt, 'bind_param'), $params);
    $stmt->execute();
    $result = $stmt->get_result();
    $stmt->close();
    return $result;
}
不可思议的帽子

由于您使用的是准备好的语句和 $stmt,也应该从 $stmt 调用受影响的行:

$stmt->affected_rows;

但是,由于您将其包装在一个函数中,并执行了 $stmt-close(),因此在函数调用之外这将不起作用。您可能需要调整您的函数以在关闭之前和函数返回之前存储该值。

有关 php 手册的更多信息:http : //php.net/manual/en/mysqli-stmt.affected-rows.php

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP MySql好友请求0行受影响

来自分类Dev

为什么此准备好的语句总是返回受影响的-1行?

来自分类Dev

为什么这个准备好的语句总是返回受影响的-1行?

来自分类Dev

执行 MySQL 查询时,字符集如何影响 php?

来自分类Dev

C#ADO.NET UPDATE不会更改数据库记录,但仍会返回1个受影响的行

来自分类Dev

MySQL 更新返回 0 行受影响

来自分类Dev

PHP MySQL 不返回 1 进行登录

来自分类Dev

数组少返回1行-PHP

来自分类Dev

数组少返回1行-PHP

来自分类Dev

PHP Post始终返回1

来自分类Dev

PHP数组计数返回1

来自分类Dev

PHP Post始终返回1

来自分类Dev

PHP count() 总是返回 1

来自分类Dev

子查询返回超过1行的MySQL

来自分类Dev

子查询返回超过1行的MySQL

来自分类Dev

PHP MYSQL查询执行

来自分类Dev

如何以正确的方式通过PHP执行MySQL查询?

来自分类Dev

PostgreSQL通过UPDATE / INSERT查询返回受影响的行

来自分类Dev

PHP mysqli查询在联接上返回结果“ 1”

来自分类Dev

PHP MySQLi准备的语句fetch()返回'1'而不是查询结果

来自分类Dev

UPDATE MySQL查询错误“子查询返回多于1行”

来自分类Dev

UPDATE MySQL查询错误“子查询返回多于1行”

来自分类Dev

PHP MySQLi受影响的行在删除语句后返回错误的结果

来自分类Dev

PHP PDO MySQL当不影响任何行时检查更新查询是否成功的正确方法

来自分类Dev

MYSQL PHP的order by和limit 1返回null

来自分类Dev

希望COUNT在PHP MYSQL中返回0或1

来自分类Dev

$ response JSON仅返回1行,PHP,ANDROID

来自分类Dev

PHP Float转换失败,返回1

来自分类Dev

php exec返回错误代码1