Pasar de mysql a mysqli
quisiera saber como pasar mi pagina web hecha con mysql a mysqli y no morir en el intento
Editado
Editado
0
Puntos
Puntos
17136
Visitas
Visitas
5
Resp
Resp
Respuesta #1
...Y no morir en el intento jajaja.
Bueno, te explicaré algunas cosas básicas por pasos:
1.- La Conexión
Antes se usaba
2.- Consultas
Antes usábamos
3.- Función escape de caracteres.
Si usas Dreamweaver, o has usado su función GetSQLValueString() podrás haber notado que en el desarrollo de ésta función hay una función nativa de PHP llamada mysql_real_escape_string(). Y si no has usado nada de eso de Dreamweaver, quizás sí las usado, ya que esa función mysql_real_escape_string() nos permite evadir el SQL Injection, bien.. Antes esta función era:
3.- Fetch Array
Antes para obtener un arreglo de datos de una consulta utilizábamos
4.- Contar las filas
Cuando hacemos una consulta a veces queremos saber cuántos resultados halló, o incluso validar preguntando si existe al menos un resultado, para eso usábamos
__________________________________________________________________________________
Bien, ahora ¿Qué alternativa es mejor?
Ambas alternativas son válidas, aunque personalmente, creo que el lenguaje hoy día se está manejando más orientado a objetos, incluso es una de las cosas que ha rescatado a PHP, yo recomiendo aprenderlo y no es complicado: "PHP Orientado a Objetos".
Estos fueron algunos términos básicos, pero si buscas en la Documentación Oficial por alguna función obsoleta mysql_* encontrarás que te hacen referencia a utilizar la nueva sintaxis mysqli_* y te muestran algunos ejemplos de como se usa. Saludos :-)
Bueno, te explicaré algunas cosas básicas por pasos:
1.- La Conexión
Antes se usaba
<?php $con = mysql_connect("hostname","username","password); $db = mysql_select_db("basename"); ?>Pero ya no, ahora puedes usar las siguientes alternativas. Una muy similar a la anterior y la otra es orientado a objetos haciendo una instancia el objeto mysqli.
<?php $con = mysqli_connect("hostname","username","password","basename"); // Alternativa 1 $con = new mysqli("hostname","username","password","basename"); // Alternativa 2 ?>
2.- Consultas
Antes usábamos
<?php $query = mysql_query("SELECT * FROM table", $con); ?>Ahora no, ahora hay dos formas de hacerlo. Una muy similar a la anterior y la otra es orientada a objetos, asumiendo que la conexión es un objeto (para ello se debe haber usado la alternativa 2 de la conexión).
<?php $query = mysqli_query($con, "SELECT * FROM table"); // Alternativa 1 $query = $con->query("SELECT * FROM table"); // Alternativa 2 ?>
3.- Función escape de caracteres.
Si usas Dreamweaver, o has usado su función GetSQLValueString() podrás haber notado que en el desarrollo de ésta función hay una función nativa de PHP llamada mysql_real_escape_string(). Y si no has usado nada de eso de Dreamweaver, quizás sí las usado, ya que esa función mysql_real_escape_string() nos permite evadir el SQL Injection, bien.. Antes esta función era:
<?php mysql_real_escape_string($string); ?>Y ahora es muy similar
<?php mysqli_real_escape_string($string); ?>Siendo $string alguna cadena de texto generalmente recibida desde algún formulario (enviada por el usuario).
3.- Fetch Array
Antes para obtener un arreglo de datos de una consulta utilizábamos
<?php $row = mysql_fetch_array($query); ?>Siendo $query la consulta.. Pero ahora están dos alternativas. Una muy similar a la primera y la otra orientada a objetos (para ello se debe haber realizado la alternativa 2 de conexión).
<?php $row = mysqli_fetch_array($query); // Alternativa 1 $row = $query->fetch_array(); // Alternativa 2 ?>
4.- Contar las filas
Cuando hacemos una consulta a veces queremos saber cuántos resultados halló, o incluso validar preguntando si existe al menos un resultado, para eso usábamos
<?php $num_rows = mysql_num_rows($query); ?>Pero ahora usamos una de estas dos alternativas, la primera similar a la anterior y la segunda orientada a objetos (para ello es necesario haber realizado una conexión con la segunda alternativa).
<?php $num_rows = mysqli_num_rows($query); // Alternativa 1 $num_rows = $query->num_rows; // Alternativa 2 ?>Siendo $query la consulta.
__________________________________________________________________________________
Bien, ahora ¿Qué alternativa es mejor?
Ambas alternativas son válidas, aunque personalmente, creo que el lenguaje hoy día se está manejando más orientado a objetos, incluso es una de las cosas que ha rescatado a PHP, yo recomiendo aprenderlo y no es complicado: "PHP Orientado a Objetos".
Estos fueron algunos términos básicos, pero si buscas en la Documentación Oficial por alguna función obsoleta mysql_* encontrarás que te hacen referencia a utilizar la nueva sintaxis mysqli_* y te muestran algunos ejemplos de como se usa. Saludos :-)
Respuesta #2
pufff excelente como todos tus aportes... mil gracias..
0
Puntos
Puntos
Respuesta #3
mira esta pequeña guía, en realidad son unos pequeños cambios https://datoweb.com/post/2486/ejemplos-de-como-usar-mysqli-de-manera-facil
2
Puntos
Puntos
Por alber hace 103 meses
Administrador
Respuesta #4
Hola a todos, primero gracias por estos apuntes, a mí me vienen muy bien pues tengo una web/tienda pequeñita pero en MySQL o deprecada. Estoy pasito a pasito migrando a php7 MySQLi en local con xammp.
Quisiera saber si ¿hay un post con todos los recursos que se deben cambiar o en tal caso si puedo hacer aqui preguntas o pedir ayuda o he de abrir hilo nuevo?
Un saludo.
Quisiera saber si ¿hay un post con todos los recursos que se deben cambiar o en tal caso si puedo hacer aqui preguntas o pedir ayuda o he de abrir hilo nuevo?
Un saludo.
2
Puntos
Puntos
Por Drums hace 55 meses
Principiante
Respuesta #5
Excelente, muchas gracias, hoy 18/03/2021 pude reactivar mi sitio web gracias a estos datos, muchas gracias
1
Puntos
Puntos
Por brianalvarezc hace 37 meses
Principiante