Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用mysqli获取受影响的行?_Php_Mysqli - Fatal编程技术网

Php 如何使用mysqli获取受影响的行?

Php 如何使用mysqli获取受影响的行?,php,mysqli,Php,Mysqli,我创建了在数据库中进行查询的函数: function mysqli($query){ $mysqli = new mysqli('test','test','test','test'); if (mysqli_connect_errno()) { printf("Bad connect: %s\n", mysqli_connect_error()); exit(); } $result = $mysqli->query("SE

我创建了在数据库中进行查询的函数:

function mysqli($query){
    $mysqli = new mysqli('test','test','test','test');
    if (mysqli_connect_errno()) {
        printf("Bad connect: %s\n", mysqli_connect_error());
        exit();
    }
    $result = $mysqli->query("SET NAMES utf8");
    $result = $mysqli->query("set character_set_client='utf8'");
    $result = $mysqli->query("set collation_connection='utf8_general_ci'");
    $result = $mysqli->query($query);

    $mysqli->close();
    return $result;
};
在下一步中,我希望获得受影响行的计数

为此,我提出:

$res2 = mysqli("INSERT INTO Table (name, value) VALUES ('$name', '$value')");
echo $res2->affected_rows;
但是我得到了
注意:在
echo$res2->受影响的行上尝试获取非对象的属性

如何获取受影响行的计数?

删除行:

$mysqli->close();
从函数开始。这就行了

function mysqli($query){

$mysqli = new mysqli('test','test','test','test');
if (mysqli_connect_errno()) {
    printf("Bad connect: %s\n", mysqli_connect_error());
    exit();
}
$result = $mysqli->query("SET NAMES utf8");
$result = $mysqli->query("set character_set_client='utf8'");
$result = $mysqli->query("set collation_connection='utf8_general_ci'");
$result = $mysqli->query($query);
$arr = array($result,$mysqli);
return $arr;
}
Amd的使用方法如下:

$res2 = mysqli("INSERT INTO Table (name, value) VALUES ('$name', '$value')");
echo $res2[1]->affected_rows;
您的结果将出现在这个变量中:
res2[0]

阅读以下答案:

改变

$res2 = mysqli("INSERT INTO Table (name, value) VALUES ('$name', '$value')");

删除$mysqli->close();利用

$mysqli->query("INSERT INTO Table (name, value) VALUES ('$name', '$value')"); 
echo $mysqli->affected_rows;
这个函数是毫无意义和有害的。 而且永远不应该被使用

所有其他的答案都告诉你移除最无用的部分。而您真正需要删除的是连接部分。这使得整个功能变得无用

甚至是有害的,因为每次运行查询时都会通过连接来杀死MySQL服务器


更有害的是,它不支持预处理语句

mysqli是函数名,请检查它。但是如果我使用它,我不需要每次都将connetc写入mysql。我写1行而不是5行,问题不在于你写了什么,而是你的代码做了什么。它应该只连接一次。每个脚本应该只有一个连接,你明白吗?是的,但我只有一个脚本的连接。我可以检查连接-如果连接机器人存在-进行连接,否则-不进行连接你没有。在该函数中,每次运行查询时都要进行连接。
$mysqli->query("INSERT INTO Table (name, value) VALUES ('$name', '$value')"); 
echo $mysqli->affected_rows;