【发布时间】:2019-05-05 03:34:09
【问题描述】:
我有一个对表进行更新的函数,调用它后我检查表并且行已更改,但函数返回“更新时出错”而不是“医生占用”。这是我的功能。
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->consulta($sql);是做什么的? -
你能分享更多的上下文吗?我们怎么知道
$con内部发生了什么? -
此代码不可能如图所示运行。它包含许多大引号。
-
你在哪里设置
$id_medico和$id_llamada? -
问题:您知道
affected_rows返回0,如果更新有效,但值没有改变? (即如果disponible已经是1?)