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;