Me gusta la aclaracion que el profesor hace sobre el archivo .env. importante para que siempre trabajemos de una forma bastante pro. 😎
.
Introducción
¿Cómo conectarse a una base de datos con PHP?
Programa un sistema de control de gastos
Diagramando la base de datos
Creando nuestra base de datos
Instalación de phpMyAdmin
Creando tablas con phpMyAdmin
Conexión con una base de datos
Instalación de drivers para PDO en Linux
Conexión con MySQLi
Conexión con PDO
Refactor de la conexión con clases
Inserción de datos con MySQLi
Creación de controladores para la aplicación
Creación de ENUMS para la aplicación
Consultas con MySQLi
Evitando SQL Injection con bindParam
Inserción de datos con PDO
Consultas con PDO
Evitando SQL Injection con consultas preparadas en PDO
Ligando parámetros con bindParams
Ligando parámetros con bindValue
Selección de datos
Consultando datos con FetchAll
Consultando datos con Fetch
Vinculando columnas con bindColumn
Completando nuestros controladores
Transacciones: cómo revertir una consulta SQL con PHP
Reto: CRUD con PHP y SQL
Conexión a formularios en HTML
Creación de nuestro router
Programando los métodos del router
Mostrando nuestros datos en HTML
Próximos pasos
¿Quieres un Curso Profesional de PHP?
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
RetaxMaster
Aportes 9
Preguntas 5
Me gusta la aclaracion que el profesor hace sobre el archivo .env. importante para que siempre trabajemos de una forma bastante pro. 😎
.
Mi aporte
// esta es la forma orientada a objetos
$mysqli = new mysqli($server,$username,$password,$database);
// comprobar la conexion de manera procedural
// if(!$mysqli){
// die("Fallo la conexion:" . mysqli_connect_errno());
// }
// comprobar la conexion orientada a objetos
if ($mysqli->connect_errno) {
die("Fallo la conexion: " . $mysqli->connect_error);
}
// Esto nos ayuda a poder usar cualquier caracter en nuestras consultas
$setnames = $mysqli->prepare("SET NAMES 'utf8'");
$setnames->execute();
A la flecha -> tambien se le conoce como Operador de Objetos y no es mas que la sintaxis para acceder a elementos de objetos, excepto las constantes y estaticos. Por eso la mencion a que estamos trabajando con POO.
Me gusta que esté usando composer y el .env, así se van aprendendo buenas practicas desde el inicio
si la conexión no les funciona es probable que sea porque su usuario o contraseña están mal, entonces vuelvan a revisar el archivo config.inc.php y verifiquen que está correctamente escritos.
¿Cómo estableceríamos esto dentro de una clase que utilice estas clases para establecer una conexión?
yo estoy usando wamp y obtuve un error porque no tenía habilitado la extensión de mysqli en php.ini:
PHP Fatal error: Uncaught Error: Class “mysqli” not found in C:\wamp64\www\phpdb\database\MySQLi\Connection.php:9
Stack trace:
#0 {main}
thrown in C:\wamp64\www\phpdb\database\MySQLi\Connection.php on line 9
lo único que hice fue entrar a la ruta del php de wamp en mi computador, en mi caso es: C:\wamp64\bin\php\php8.2.0
busque el archivo php.ini y descomentaree la línea extension=mysqli que tenía un ; al inicio, se lo quite, guarde y reinicie el server y funcionó
Mi resumen de la clase:
Conexión con MySQLi
Para realizar la conexión a la base de datos MySQL debemos tener en cuenta los siguientes parámetros:
Para establecer la conexión tenemos 2 formas de hacerlo:
Forma orientada a objetos:
$mysqli = new mysqli($server, $username, $password, $database);
// Comprobar la conexion de manera orientada a objetos
if ($mysqli->connect_errno) {
die("Fallo la conexion: " . $mysqli->connect_error);
}
// Esto nos ayuda a poder usar cualquier caracter en nuestras consultas
$setnames = $mysqli->prepare("SET NAMES 'utf8'"); // Establece en la base que se van a utilizar caracteres especiales en las consultas
$setnames->execute();
Forma procedural
$mysqli = mysqli_connect($server, $username, $password, $database);
// Comprobar la conexion de manera procedural
if(!$mysqli){
die("Fallo la conexion:" . mysqli_connect_errno());
}
$setnames = $mysqli->prepare("SET NAMES 'utf8'"); // Establece en la base que se van a utilizar caracteres especiales en las consultas
$setnames->execute();
Códigos de error
yo tengo instalado XAMMP en mi pc, para que la conexión me funcionara hice esto:
$server="127.0.0.1";
$database="moneymaster";
$port=3306;
$username="root";
$password="";
$mysqli=new mysqli($server,$username,$password,$database,$port);
De esta manera me funcion
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?