Tema: Dudas MySQLi
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/09/2012, 12:48
Avatar de Karmac
Karmac
 
Fecha de Ingreso: agosto-2011
Ubicación: Bilbao
Mensajes: 196
Antigüedad: 12 años, 9 meses
Puntos: 34
Pregunta Dudas MySQLi

¡Hola a tod@s! Recientemente vi el anuncio en el foro sobre la declaración de las funciones para MySQL como obsoletas a largo plazo, así que me puse a aprender MySQLi. He aquí unas dudas que tengo:

Código PHP:
if ( $query $mysqli->query'SELECT MAX(position) FROM notes' ) )
{
    
$row $query->fetch_arrayMYSQLI_NUM );
    
$position $row[0] + 1;

    if ( 
$query $mysqli->prepare'INSERT INTO notes (text, date, position) VALUES (?, ?, ?)' ) )
    {
        
$date time();
        
$query->bind_param'sii'$text$date$position );
        
$query->execute();
        echo 
self::serialized_return$mysqli->insert_id$text$date );
    }
    else
        throw new 
Error'Error al intentar añadir la nota.' );
}
else
    throw new 
Error'Error al intentar añadir la nota.' ); 
1. ¿El manejo de errores es correcto? Quiero decir, ¿basta con comprobar si $query se declara correctamente o $query->execute() también puede devolver algún error?
2. Esto ya sobre PHP, ¿puedo hacer algo para no tener que repetir el else dos veces?

Código PHP:
foreach ( $positions as $position => $id )
    
$query_vals[] = ' WHEN ' . (int)$id ' THEN ' . ( (int)$position );

if ( 
$query $mysqli->prepare'UPDATE notes SET position = CASE id ' implode$query_vals ) . ' END' ) )
{
    
$query->execute();
    throw new 
Success'Las notas fueron ordenadas correctamente.' );

1. En este otro código, en vez de construir la consulta con un bucle y depués ejecutarla, ¿puedo utilizar $query->bind_param() como en el código de arriba para que me vaya agregando los datos del array?
2. En este código en el que las variables externas son forzadas a ser del tipo integer, ¿es más seguro utilizar una consulta preparada o puedo ejecutarlo con mysqli:query()?

Gracias por responder.
Saludos.