Saludos, estoy programando una aplicación web
aquí va la parte del código que me tira el error.
public function registro($carnet,$nombre,$apellido,$email,$contrasena){
$db = new Conexion();
$SQL = $db->query("SELECT * FROM Usuario WHERE carnet = '$carnet' ");
$registro = $db->recorrer($SQL);
//se define nombre y apellido como un solo atributo
$nombre = $nombre." ".$apellido;
if($registro['Carnet'] != $carnet){
//si no existe en la base dedatos se completa el registro
$Consulta= "INSERT INTO Usuario (Carnet,Nombre,Email,Password,Carrera,Imagen) "
. "VALUES ('$carnet','$nombre','$apellido','$email','$contrasena','','')";
$db->query($Consulta)or die(mysqli_error('sis_archivos'));
}else{
echo " ya existe alguien con tu carnet";
}
Supongo que la parte del error se encuentra en el $Consulta en el query que inserta en la base de datos:
arrojándome el siguiente error:
Warning: mysqli_error() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs\Carpetas\Class\class.Acceso.php on line 38
De antemano agradezco...
Buenas.
La solución sería cambiar esto...
$db->query($Consulta)or die(mysqli_error('sis_archivos'));
... Por esto:
$db->query($Consulta)or die($db->error);
Edito: Como vi otros errores - y tenía tiempo - re hice el código.
<?php
function register($card, $name, $surname, $email, $passwd) /*public function in a class*/
{
$mysqli = new mysqli("localhost", "root", "toor", "database");
/* Check connection */
if ($mysqli->connect_errno)
{
die("An error occurred trying to connect to the database. (" . $mysqli->connect_error . ').'); // // Show MySQL errors only for debug.
}
$sql = $mysqli->query("SELECT * FROM `users` WHERE `card` = '$card'");
//$register = $mysqli->recorrer($sql); // This function does not exist (see num_rows below).
//$name = $name . " " . $surname; // Disable because the query below save both in different columns.
if ($sql->num_rows == 0) // Check if the I.D. card exists.
{
$sql = "INSERT INTO `users` (card, name, surname, email, passwd, job, image) "
. "VALUES ('$card', '$name', '$surname', '$email', '$passwd', '', '')";
$mysqli->query($sql) or die("An error occurred trying to do the query. (" . $mysqli->error . ').'); // Show MySQL errors only for debug.
echo ("* User added successfully.");
}
else
{
echo ("* An user already exists with your I.D. card.");
}
$mysqli->close();
}
?>
(P.D.: Lamento que esté en inglés, es que no me gusta programar en español xD).
Y el uso sería...
register("MyCard", "John", "Smith", "[email protected]", "p4ssw0rd");
Saludos.