Foros del Web » Programando para Internet » PHP »

Duda sobre bind_param

Estas en el tema de Duda sobre bind_param en el foro de PHP en Foros del Web. Hola a todos he visto esto en la web de php: http://php.net/manual/es/mysqli-stmt.bind-param.php y mi pregunta es que diferencia hay entre usarlo con mysqli o pdo. ...
  #1 (permalink)  
Antiguo 20/05/2016, 08:10
 
Fecha de Ingreso: julio-2014
Mensajes: 115
Antigüedad: 9 años, 9 meses
Puntos: 1
Duda sobre bind_param

Hola a todos he visto esto en la web de php: http://php.net/manual/es/mysqli-stmt.bind-param.php y mi pregunta es que diferencia hay entre usarlo con mysqli o pdo. A partir de esto desarrolle mi propio script que opinan de el. Saludos y gracias!
Código PHP:
Ver original
  1. require($_SERVER['DOCUMENT_ROOT'].$conexion);      
  2. $SQL_datos_conexion = new mysqli($db_host, $db_user, $db_pass, $db_name);
  3.  
  4. $stmt = $SQL_datos_conexion->prepare($consult);
  5.  
  6. if (!$stmt) {
  7.     //Si hay un error redirigir a una pagina de error";
  8. }else{
  9.         $SQL_datos_conexion->set_charset('utf8');
  10.  
  11.             if($datos!=false){
  12.                 if(is_array($datos)){
  13.                     //Saber si es string o numerico(int)
  14.                     $type = '';
  15.                     foreach ($datos as $clave=>$valor) {
  16.                         $datos[$clave]=htmlspecialchars(htmlentities($datos[$clave],ENT_QUOTES), ENT_QUOTES);
  17.                         $type .= is_numeric($datos[$clave]) ? 'i' : 's';
  18.                     }
  19.                     unset($clave,$valor);
  20.  
  21.                     //Solo funciona con arrays
  22.                     $stmt->bind_param($type, ...$datos);
  23.                 }else{
  24.                     $datos=htmlspecialchars(htmlentities($datos,ENT_QUOTES), ENT_QUOTES);
  25.                     $stmt->bind_param('s', $datos);
  26.                 }
  27.             }
  28.             $stmt->execute();
  29.             //Array para retornar informacion
  30.             $valores_retorno=array();
  31.  
  32.                 //Numero de celdas afectadas e ID del registro en caso de que sea un insert into el numero de celdas afectadas tambien funciona en el update
  33.                 if($informacion==true){            
  34.                     $n_celdas=$stmt->affected_rows;
  35.                     $id_nuevo_registro=$stmt->insert_id;
  36.                     array_push($valores_retorno, $n_celdas, $id_nuevo_registro);
  37.                 }
  38.                 //Contar registros, funciona en select
  39.                 if($contar_registros==true){
  40.                     $stmt->store_result();
  41.                     $numero_registros=$stmt->num_rows;
  42.                     array_push($valores_retorno, $numero_registros);
  43.                 }
  44.                 //Mostrar los datos modificados (update)
  45.                 if($mostrar_datos==true){
  46.                     //$stmt->store_result();
  47.                     //$num_of_rows = $stmt->num_rows;
  48.  
  49.                     if($mostrar_datos_numero==1){
  50.                         $stmt->bind_result($mostrar_info);
  51.                     }elseif($mostrar_datos_numero==2){
  52.                         $stmt->bind_result($mostrar_info[0], $mostrar_info[1]);
  53.                     }elseif($mostrar_datos_numero==3){
  54.                         $stmt->bind_result($mostrar_info[0], $mostrar_info[1], $mostrar_info[2]);
  55.                     }elseif($mostrar_datos_numero==4){
  56.                         $stmt->bind_result($mostrar_info[0], $mostrar_info[1], $mostrar_info[2], $mostrar_info[3]);
  57.                     }
  58.  
  59.                         while ($stmt->fetch()) {
  60.                             if(!is_array($mostrar_info)){
  61.                                 array_push($valores_retorno, $mostrar_info);
  62.                             }else{                     
  63.                                 for ($i=0; $i<$mostrar_datos_numero; $i++) {
  64.                                     array_push($valores_retorno, $mostrar_info[$i]);
  65.                                 }
  66.                             }
  67.                         }
  68.         //Si no hay valoresa retornar eliminar la variable
  69.         if(empty($valores_retorno)){
  70.             unset($valores_retorno);
  71.         }else{
  72.            
  73.             foreach ($valores_retorno as $clave=>$valor) {
  74.                 $valores_retorno[$clave]=htmlspecialchars_decode($valores_retorno[$clave], ENT_QUOTES);
  75.             }
  76.  
  77.             return $valores_retorno;
  78.         }
  79.  
  80.         $stmt->close();
  81.         $SQL_datos_conexion->close();
  82. }

En si es una funcion que desde ella quiero hacer todo actualizar, borrar, insertar y editar registros, se muy poco de esto lo he ido construyendo como he podido incluso algunas cosas a modo de prueba error

PD: Creen que para el error de la conexion lo he echo bien? quiero que salga ese error desde un fallo de la conexion hasta si hay un error en la consulta no se si me explico :/

Última edición por gnzsoloyo; 20/05/2016 a las 10:09
  #2 (permalink)  
Antiguo 20/05/2016, 10:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Duda sobre bind_param

OFF TOPIC en MySQL

Los temas de programación no se tratan en los foros de Bases de Datos.
Leer las normas del foro, por favor.

Movido a PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mysql, registros, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:43.