Hola, estoy tratando de replicar el ejercicio de la Wiki para Evitar guardar registros duplicados en la Base de datos, pero con la salvedad de conectarme a postgresql y no a MySql, la cuestion es que estoy obteniendo este mensaje de error y sinceramente aún no se interpretarlo, si alguien me puede dar una manito lo agradezco en el alma
Código text:
Ver originalWarning: pg_query() [function.pg-query]: Query failed: ERROR: input of anonymous composite types is not implemented LINE 1: SELECT nombre FROM usuarios WHERE usuarios='Maria _H' ^ in /home/victor/php/www/public/basesdedatos/record.php on line 21
Fallo en la consulta para validación
El código que estoy usando es este:
Código PHP:
<?php
/* Para este código (simplemente ilustrativo) suponemos se recive un formulario dónde se ingresó un "usuario" y un "password" para ser agregados en la BD.
Queremos evitar haya 2 usuarios iguales.
Nuestra Tabla tendría que tener 3 campos:
- usuario (VACHAR)
- password (VACHAR)
*/
// Paso 1: Recibimos el formulario:
$nombre= $_POST['nombre'];
$password1= md5($_POST['password1']); // www.php.net/md5
$password2= md5($_POST['password2']);
if ($password1==$password2){
// Obviamente conectamos
$conexion = pg_connect("host=localhost port=5432 dbname=tutorial user=postgres password=212530") or die ("Fallo en el establecimiento de la conexión");
$query="SELECT nombre FROM usuarios WHERE usuarios='$nombre';";
// Paso 2: Hacemos la consulta a la Tabla por el usuario
$busqueda= pg_query($conexion,$query) or
die ("Fallo en la consulta para validación");
// Paso 3: vemos si hubo coincidencias
if(pg_num_rows($busqueda)>0) { // ó " !=0 " como se quiera ver
// Inciso a:
echo "El nombre de usuario no se encuentra disponible. Por favor intente con otro.<br>";
echo "<a href=\"javascript:history.back()\">Regresar</a>";
}
else {
// Inciso b:
pg_query($conexion, "INSERT INTO tabla(usuario, password) VALUES ('$nombre', '$password1')");
echo "$user ha sido registrado.";
}
}
else {
echo "Lo sentimos, las contraseñas no coinciden";
echo "<a href=\"javascript:history.back()\">Regresar</a>";
}
?>