Autor Tema: [TUT!] Manual mysqli  (Leído 10392 veces)

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
[TUT!] Manual mysqli
« en: 09 de Agosto de 2010, 21:30:44 pm »
Bueno pondre algunos tutoriales sobre como usar mysqli, antes de comenzar a aprendeer mysqli deberiamos por lo menos saber lo basico de POO. Ahora vamos a aprender como conectarnos a la base de datos.

Los datos de la conexion los debemos poner al inicializar el objeto, veamos el siguiente ejemplo que explica como colocar los datos.
Citar
<?PHP
$conexion 
= new mysqli(&#39;host&#39;,&#39;usuario&#39;,&#39;contraseña&#39;,&#39;bd&#39;);
if(!$conexionprintf("Fallo al conectar con la base de datos: %s"mysqli_connect_error()); #En caso de haber algun fallo en la conexion mostrara el error.
?>

Algo que me gusta de mysqli es que podemos separar los errores de conexion & de consultas, aqui ya tenemos nuestra primera conexion, ire colocando mas tutoriales sobre este tema.

Luego de haber aprendido a conectarnos a la base de datos lo que sigue es aprender a seleccionar & mostrar los datos. Para hacer lo anterior primero debemos seleccionar los datos con la funcion query de la clase mysqli & luego mostrarlos con la funcion fetch_array dependiendo del tipo que queramos.

A la funcion fetch_array le podemos especificar como queremos el array, puede ser asociativo (MYSQLI_ASSOC), numerico (MYSQLI_NUM) o de los dos tipos (MYSQLI_BOTH). Ahora vamos a ver como se veria nuestro codigo.

Citar
<?PHP
/* Conexion */
$conexion = new mysqli(&#39;host&#39;,&#39;usuario&#39;,&#39;contraseña&#39;,&#39;bd&#39;);
if(!$conexion){
printf("Fallo al conectar con la base de datos: %s"mysqli_connect_error());
} else {
$consulta $conexion->query("SELECT id FROM algo ORDER BY id DESC");
$resultado $consulta->fetch_array(MYSQLI_ASSOC);
printf("Hola %s"$resultado[&#39;nombre&#39;]); # No es que tengan que usar siempre printf, yo lo uso porque es mas comodo para mi, pueden usar echos

/* Liberamos & cerramos la conexion */
$consulta->close();
$conexion->close();
}
?>
« Última modificación: 10 de Agosto de 2010, 17:02:38 pm por Focux »
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Comunidad PHPeros

[TUT!] Manual mysqli
« en: 09 de Agosto de 2010, 21:30:44 pm »

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[!TUT] Mostrando datos con mysqli
« Respuesta #1 en: 09 de Agosto de 2010, 21:49:15 pm »

Me parece una chorrada como una casa..... pero para gustos, los colores sin animo de ofender por tu tutorial.

#Fdo. Physlet

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[!TUT] Mostrando datos con mysqli
« Respuesta #2 en: 09 de Agosto de 2010, 21:58:43 pm »
Chorrada?, que no lo sepas manejar no significa que sea chorrada, te aseguro que supera a mysql en mucho, ademas de que la mayoria de personas programan orientado a objetos que seria mucho mas facil para los programadores, como quiera seguire p*****ndo tutoriales de las cientas de funciones que posee la misma.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado westwest

  • PHPero Master
  • ******
  • Mensajes: 2.837
  • Karma: 104
  • Sexo: Masculino
    • Ver Perfil
Re:[!TUT] Mostrando datos con mysqli
« Respuesta #3 en: 09 de Agosto de 2010, 22:00:46 pm »
Me parece estúpido que se cree un objeto para una query y que esta tenga que cerrarse con close()... es raro que sea asi

Desconectado HiddenHlF

  • PHPero Avanzado
  • ****
  • Mensajes: 285
  • Karma: 7
  • Sexo: Masculino
  • The Hidden
    • Ver Perfil
Re:[!TUT] Mostrando datos con mysqli
« Respuesta #4 en: 09 de Agosto de 2010, 22:01:21 pm »
me parece que no esta mal para los que quieran aprender la funcion pero yo personalemente no tengo intencion de meterme en serio con POO ahora mismo y con query a secas me va genial así que si eso lo dejo para dentro de un tiempo xP a parte que query es mas simple y para los códigos que hago de momento no me importa que sea 0,05 segundos mas lenta xP aun así buen tuto se entiende bien ;) y puede ser bastante útil para algunos.

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[!TUT] Mostrando datos con mysqli
« Respuesta #5 en: 09 de Agosto de 2010, 22:05:28 pm »
Me parece estúpido que se cree un objeto para una query y que esta tenga que cerrarse con close()... es raro que sea asi
Solo si lo quieres tener orientado a objetos porque tambien lo puedes usar normal como funcion, con respecto a lo otro, explique en un post anterior que se pueden hacer mas de 1 consulta separandose por punto y coma(;), si lo que te molesta es inicializar una clase en cada archivo lo idoneo seria esterilizarla.
me parece que no esta mal para los que quieran aprender la funcion pero yo personalemente no tengo intencion de meterme en serio con POO ahora mismo y con query a secas me va genial así que si eso lo dejo para dentro de un tiempo xP a parte que query es mas simple y para los códigos que hago de momento no me importa que sea 0,05 segundos mas lenta xP aun así buen tuto se entiende bien ;) y puede ser bastante útil para algunos.
Gracias.

Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:[TUT!] Como conectarnos a la base de datos con mysqli
« Respuesta #6 en: 10 de Agosto de 2010, 14:10:34 pm »
Me parece estúpido que se cree un objeto para una query y que esta tenga que cerrarse con close()... es raro que sea asi

Lo cierto es que es así como se hace, en PHP y en todos los lenguajes de programación.
Todo debe liberarse de la memoria y todas las conexiones deben ser cerradas.

Y lo de los objetos, Focux esta en lo cierto, la mayoria de los códigos están orientados a objetos, y tener mysql orientado a objetos es un buen avance.
Quizás para algunos de ustedes no os sirva ni notéis mucho el cambio, porque para lo que nosotros hacemos lo mismo nos da llamar una función que instanciar un objeto.
Yo personalmente prefiero instanciar, pero bueno, cuestión de gustos.

Saludos!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[TUT!] Manual mysqli
« Respuesta #7 en: 13 de Agosto de 2010, 21:40:36 pm »
Yo personalmente les recomiendo muchísimo adentrarse a la Programación Orientada a Objetos. Cuando ustedes iniciaron en PHP, ¿se detuvieron a aprender cosas nuevas? Lo dudo... Pero ahora veo que muchos se detienen porque lo ven muy complicado. Chicos, aquí nada es complicado siempre y cuando le metas interés y dedicación. POO facilita la programación, sobre todo promueve la reutilización de códigos y me parece genial un MySQL OO, así que creo que aprenderé de ahí ya que nunca me dió tiempo para profundizar en el MySQL.

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[TUT!] Manual mysqli
« Respuesta #8 en: 14 de Agosto de 2010, 00:03:48 am »
Yo personalmente les recomiendo muchísimo adentrarse a la Programación Orientada a Objetos. Cuando ustedes iniciaron en PHP, ¿se detuvieron a aprender cosas nuevas? Lo dudo... Pero ahora veo que muchos se detienen porque lo ven muy complicado. Chicos, aquí nada es complicado siempre y cuando le metas interés y dedicación. POO facilita la programación, sobre todo promueve la reutilización de códigos y me parece genial un MySQL OO, así que creo que aprenderé de ahí ya que nunca me dió tiempo para profundizar en el MySQL.
Karma +, realmente debemos adentrarnos al cambio, llegara un momento de que todo sera orientado a objetos & por lo menos a mi no me gustaria quedarme atras.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado nadeu3

  • PHPer@
  • **
  • Mensajes: 73
  • Karma: 0
    • Ver Perfil
Re:[TUT!] Manual mysqli
« Respuesta #9 en: 15 de Agosto de 2010, 17:01:44 pm »
Siendo sinceros. de hoy en dia, configurando el MySQL bien, con el tunner, y dejando las KeepAlive Off, todo está solucionado. Si es por ahorrar recursos.. dejadlo, no sirve ya ;) Es totalmente inutil. a un i7 de 8G le da igual que sea mysql que mysqli siempre y cuando este bien configurado.

Saludos.

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[TUT!] Manual mysqli
« Respuesta #10 en: 15 de Agosto de 2010, 17:52:19 pm »
Siendo sinceros. de hoy en dia, configurando el MySQL bien, con el tunner, y dejando las KeepAlive Off, todo está solucionado. Si es por ahorrar recursos.. dejadlo, no sirve ya ;) Es totalmente inutil. a un i7 de 8G le da igual que sea mysql que mysqli siempre y cuando este bien configurado.
Saludos.
Claro, y tú como programador te quedarás atrás por no querer aprender algo nuevo. Un programador jamás deja de aprender y me sorprende que un programador tenga la actitud de "no, no quiero aprender esa cosa nueva, prefiero la vieja", cuando saben en realidad como son las cosas aquí...

Desconectado nadeu3

  • PHPer@
  • **
  • Mensajes: 73
  • Karma: 0
    • Ver Perfil
Re:[TUT!] Manual mysqli
« Respuesta #11 en: 18 de Agosto de 2010, 20:16:29 pm »
Claro, y tú como programador te quedarás atrás por no querer aprender algo nuevo. Un programador jamás deja de aprender y me sorprende que un programador tenga la actitud de "no, no quiero aprender esa cosa nueva, prefiero la vieja", cuando saben en realidad como son las cosas aquí...

Mira shikillo..

Atrás no me he quedado, pero hay OTRAS cosas por aprender que son más importantes.. y no he dicho que no lo aprenda, yo sé nene... yo sé como funciona.. y no tengo actitud, mi actitud es la que venis aquí, vais al quiosco, o como mucho al FNAC, os compraís:

"Como ser programador PHP en 100 páginas"

Y ya os creeis los reyes del mundo.. y la evolución del web.

Saludos..

Desconectado FeDe

  • PHPero Avanzado
  • ****
  • Mensajes: 448
  • Karma: 35
  • Sexo: Masculino
  • BaDyDj -> ¡Mi Stylo, Mi ViDa!
    • Ver Perfil
Re:[TUT!] Manual mysqli
« Respuesta #12 en: 18 de Agosto de 2010, 20:24:55 pm »
Buenas,

Buen tutorial a la hora de explicar.

Entre la "discusión" entre Nadeu y Physlet, ambos lleváis razón es importante usar la programación orientada a objetos (en adelante, POO) pero tampoco dejar atrás la opinión de que una base de datos (en adelante, BBDD) bien configurada puede resultar igual de efectiva que usando una MySQLi para aplicaciones/programaciones POO.
Para mí esto es un debate de cuestión de gustos... y como dice aquel refrán, "Para gustos, los colores."
Yo en principio, para mi gusto, seguiré con el antiguo "mysql_" (Libreria MySQL) pero sin dejar atrás las nuevas actualizaciones a la hora de programar como es este 'novedoso' POO.

"Nunca hay que dejar de saber, pero nunca usar lo inservible."

Un abrazo ! :)
Sin Firma me haces una? :P

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[TUT!] Manual mysqli
« Respuesta #13 en: 18 de Agosto de 2010, 23:35:40 pm »
Es que no puedes comparar mysqli con mysql, primero mysqli tiene mucha más seguridad, segundo muchas más funciones que mysql tambien puedes hacer tu propias funciones en base a las otras.
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[TUT!] Manual mysqli
« Respuesta #14 en: 19 de Agosto de 2010, 02:45:01 am »
Mira shikillo..
Atrás no me he quedado, pero hay OTRAS cosas por aprender que son más importantes.. y no he dicho que no lo aprenda, yo sé nene... yo sé como funciona.. y no tengo actitud, mi actitud es la que venis aquí, vais al quiosco, o como mucho al FNAC, os compraís:
"Como ser programador PHP en 100 páginas"
Y ya os creeis los reyes del mundo.. y la evolución del web.
Saludos..
Te vas controlando que aquí vemos que poca actitud tienes con respecto a estos temas.
Lamento mucho que no tengas la suficiente capacidad de raciocinio para poder decodificar un mensaje tan simple.

Yo me baso en la experiencia para estas cosas, en la experimentación. Que tu vengas a decir que el MySQLi no es necesario aprenderlo porque te mola mas el MySQL (ya que es lo que conoces y no te interesa enfrentar contra laog nuevo), es tu punto de vista, hay que defenderlo claro está, pero siempre en el marco del respeto, te recuerdo.

Yo te puedo asegurar que de PHP y programación no sé ni la 8va parte que el 90% de los de aquí, pero las cosas que digo no las comento solo por comentar, las comento porque ya las he experimentado.

Y comienza partiendo del principio "una nunca deja de aprender".