Buenas. Me ha salido un problemilla y no se por donde salir.
Al hacer un insert en una BD, utilizaba mysql_errno() para ver si había algún fallo, en concreto si un campo único se duplicaba, si era así mostraba un mensaje. Este es un proyecto que tenía apartado y antes me funcionaba bien, y me he puesto ahora para acabarlo, y claro, en las conexiones he tenido que cambiar cosas, ya que mysql_connect esta desfasado, etc....... y utilizar mysqli.
El problema es que el mysql_errno() no hace nada, y lo he cambiado al mysqli_errno() y me da un error. He estado mirando documentación de PHP y veo que hay que pasarle algo tipo así "mysqli_errno($link); pero al tocar las conexiones me he liado y estoy perdidísimo.
dejo los archivos de la conexiones:
conexion.php:
<?php
class Conector{
public $mysqli = null;
var $conect;
var $BaseDatos;
var $Servidor;
var $Usuario;
var $Clave;
function Conector(){
$this->BaseDatos = "calendario_bd";
$this->Servidor = "localhost";
$this->Usuario = "root";
$this->Clave = "";
}
function conectar() {
//MySQLi
$this->mysqli = new mysqli(
$this->Servidor,
$this->Usuario,
$this->Clave,
$this->BaseDatos
);
if ($this->mysqli->connect_errno)
{
die
(
"Falla la conexión a MySQL: ("
. $this->mysqli -> mysqli_connect_errno() .
") " . $this->mysqli -> mysqli_connect_error()
);
}
}
}
?>
basedatos.php
<?php
include_once("conexion.php");
class BaseDatos{
//constructor
var $con;
function BaseDatos(){
$this->con=new Conector;
$this->con->conectar();
}
function Consultar($q){
$this->con->mysqli->query("SET NAMES 'utf8'");
$query = $this->con->mysqli->query($q);
return $query;
}
}
$bd = new BaseDatos;
?>
y aqui es donde hago la llamada al mysqli_errno();
controller.php
<?php
function insertDate($fechaP, $nombreP, $lugarP, $emailP, $horaP, $asistentesP, $descripcionP) {
$thisDate = strtotime ( $fechaP);
$dateFormat1 = date ( ' Y-m-d', $thisDate ) ;
$Nombre = $nombreP;
$Lugar = $lugarP;
$Email = $emailP;
$Fecha = $dateFormat1 . " " . $horaP;
$FechaSimple = $dateFormat1;
//$Hora = $_POST['Hora'];
$Asistentes = $asistentesP;
$Descripcion = $descripcionP;
$bd = new BaseDatos;
$qRead = $bd->Consultar ("insert into `calendario`
(`nombre`, `lugar`, `email`, `fecha`, `fecha_simple`, `asistentes`, `descripcion`)
value ('$Nombre','$Lugar','$Email','$Fecha','$FechaSimple','$Asistentes','$Descripcion');");
$error = mysqli_errno();
if ($error != 0){
echo '<script type="text/javascript">// <![CDATA[
alert("La fecha y la hora corresponden a una cita existente, por favor, inserte otra fecha u otro horario. Gracias.");
// ]]></script>';
} else{
echo '<script type="text/javascript">// <![CDATA[
alert("Cita concertada correctamente.");
// ]]></script>';
}
$Fecha = "";
}
?>
ha ver si alguien me sabe orientar......