PHP受影响的_行返回0,但执行查询
我有一个函数,其中我对一个表进行更新,在调用它之后,我检查表,并且行已经更改,但是函数在更新时返回错误,而不是错误。这是我的功能PHP受影响的_行返回0,但执行查询,php,mysql,sql,oop,Php,Mysql,Sql,Oop,我有一个函数,其中我对一个表进行更新,在调用它之后,我检查表,并且行已经更改,但是函数在更新时返回错误,而不是错误。这是我的功能 function funcion(){ $con = new Conexion(); $con->conecta(); $sql = “SELECT * FROM llamada WHERE id_llamada = $id_llamada AND id_medico = $id_medico”; $res = $con->co
function funcion(){
$con = new Conexion();
$con->conecta();
$sql = “SELECT * FROM llamada WHERE id_llamada = $id_llamada AND id_medico = $id_medico”;
$res = $con->consulta($sql);
if ($res->num_rows > 0) {
$sql = “UPDATE medico SET disponible = 1 WHERE id_medico = $id_medico”;
$con->consulta($sql);
// var_dump($con->mysqli->affected_rows);
if ($con->mysqli->affected_rows() > 0) {
return [true,‘Doctor occupied’];
}else{
return [false,‘Error at update’,$con->mysqli];
}
}else{
return [false,‘Data doesn't match’];
}
}
函数conecta实现与mysql的连接
这是课堂
class Conexion {
public $mysqli;
public function conecta(){
$this->mysqli = new mysqli(‘SERVER’, ‘USER’, ‘PASSWORD’, ‘DATABASE’);
if ($this->mysqli->connect_errno) {
echo “Fallo al conectar a MySQL: (” . $this->mysqli->connect_errno . “) ” . $this->mysqli->connect_error;
}
//echo $this->mysqli->host_info . “<br>“;
}
public function desconecta(){
$this->mysqli->close();
}
public function consulta($sql) {
$resultado = $this->mysqli->query($sql);
if (!$resultado) {
echo “Error en la consulta <br>“;
}
if (is_null($resultado)){
echo “sin resultados”;
}else{
return $resultado;
}
}
}
假设$con->mysqli是连接句柄,受影响的_行是一个属性而不是一个方法。所以你的台词
if ($con->mysqli->affected_rows() > 0) {
应该是
if ($con->mysqli->affected_rows > 0) {
这就是你在
// var_dump($con->mysqli->affected_rows);
mySqli提供了两个接口,一个是面向对象的,另一个是过程的。以面向对象的方式,受影响的_行实际上是mySqli对象的一个属性。但是,如果您更习惯使用过程编码,那么可以使用函数mysqli_impacted_rows,它需要$link参数see more info 程序选项的一个示例:
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
// code for a SELECT, INSERT, UPDATE, REPLACE, or DELETE query
printf("Affected rows: %d\n", mysqli_affected_rows($link) );
注意:您还可以找到一个关于过程风格的好教程。那么$con->consulta$sql;你能分享更多的背景吗?我们如何知道$con内部发生了什么?此代码不可能按所示运行。它包含许多卷引号。您在哪里设置$id\u medico和$id\u llamada?问题:您知道,如果更新有效,受影响的行返回0,但没有更改值?i、 如果Disposible已经是1了?那么你需要分享Conexion的代码,否则这都是猜测。我刚刚添加了它。