
Función PHP para Insertar registros NO FUNCIONA!!!
Publicado por Abel (5 intervenciones) el 10/12/2016 15:31:26
Hola Amigos, estoy trabajando con una pequeña aplicación en PHP y MySQL.
Tengo una clase creada para una de mis tablas en la BdD:
El problema es que el segmento: "$this->db->query($sql)" que uso en todas las funciones para ejecutar mi consulta SOLO funciona para mostrar datos, es decir las funciones : ListarRegistroByCI() y ListarMateriasPendientes() se ejecutan correctamente, pero al tratar de ejecutar las funciones RegistrarMateria() y RetirarMateria(), el segmento "$this->db->query($sql)" no funciona.
Llamo a las funciones de la siguiente forma:
ya verifique que la query:
esta correcta, porque hice un echo para verificar si los valores se enviaron correctamente,luego lleve el resultado del echo al gestor de base de datos y este lo ejecuta correctamente "INSERT INTO registro VALUES(NULL,5654,3)".
ALGUNA IDEA PORQUE "$this->db->query($sql)" funciona cuando la QUERY es un SELECT y NO FUNCIONA cuando intento hacer un INSERT,DELETE o UPDATE ????????? Ayuda!!!!
Tengo una clase creada para una de mis tablas en la BdD:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
require_once '../controller/ClsConectar.php';
class ClsRegistro
{
private $id_registro,$ci,$id_materia;
private $conectar,$db,$registros;
function __construct() {
$this->conectar=new ClsConectar();
$this->db=$this->conectar->conexion();
$this->registros=array();
$this->ci=0;
$this->id_materia=0;
}
public function getId_registro()
{ return $this->id_registro; }
public function setId_registro($id_registro)
{ $this->id_registro=$id_registro;}
public function getCi()
{ return $this->ci; }
public function setCi($ci)
{ $this->ci=$ci;}
public function getId_materia()
{ return $this->id_materia; }
public function setId_materia($id_materia)
{ $this->id_materia=$id_materia;}
public function ListarRegistroByCI() {
$sql="SELECT r.id_registro,m.sigla_materia,m.nombre_materia FROM registro r, materia m WHERE r.id_materia=m.id_materia AND r.ci=$this->ci";
$consulta=$this->db->query($sql);
$this->registros=$consulta->fetch_all(MYSQLI_ASSOC);
return $this->registros;
}
public function ListarMateriasPendientes() {
$sql="SELECT * FROM materia WHERE id_materia NOT IN(SELECT id_materia FROM registro WHERE ci=$this->ci)";
$consulta=$this->db->query($sql);
$this->registros=$consulta->fetch_all(MYSQLI_ASSOC);
return $this->registros;
}
public function RegistrarMateria() {
$sql="INSERT INTO registro VALUES(NULL,$this->ci,$this->id_materia)";
$this->db->query($sql);
}
public function RetirarMateria() {
$sql="DELETE FROM registro WHERE id_registro=$this->id_registro";
$this->db->query($sql);
}
}
?>
Llamo a las funciones de la siguiente forma:
1
2
3
4
$registro=new ClsRegistro();
$registro->setId_materia($id_materia);
$registro->setCi($ci);
$registro->RegistrarMateria();
1
$sql="INSERT INTO registro VALUES(NULL,$this->ci,$this->id_materia)";
ALGUNA IDEA PORQUE "$this->db->query($sql)" funciona cuando la QUERY es un SELECT y NO FUNCIONA cuando intento hacer un INSERT,DELETE o UPDATE ????????? Ayuda!!!!
Valora esta pregunta


0