Kenneth Angulo L
EstudianteJuan Pablo Campuzano Monsalve
EstudianteYerson Felipe Ramirez Garnica
EstudianteAna Maria Barbosa
EstudianteAdriana La Rotta
EstudianteAdonay Robles
EstudianteKevin Giovanni Cano Blanco
EstudianteMarvin Esteban Menchú Socop
EstudianteJuan Pablo Campuzano Monsalve
EstudianteDiego Sigcho Alvarado
EstudianteJuan Pablo Campuzano Monsalve
EstudianteMarlón Andrés Cuartas Aguirre
EstudianteMarlón Andrés Cuartas Aguirre
EstudianteBlanca Segura Garcia
EstudianteErmilo Joel Dorantes Uc
EstudianteBlanca Segura Garcia
EstudianteJuan Pablo Campuzano Monsalve
EstudianteAdan Steven Pedraza Castañeda
EstudianteDiego Sigcho Alvarado
EstudianteJavier Cómbita Téllez
EstudianteMe gusta la aclaracion que el profesor hace sobre el archivo .env. importante para que siempre trabajemos de una forma bastante pro. 😎 .
Si, me gusta mucho la idea de las .ENV, sin embargo nunca he aprendido a usarlos.
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();
Crack, cual plugin tienes instalados, para que se visualicen así los iconos de los archivos. el de git, php, la carpeta. etc?
La extension "Material Icon Theme"
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
Seise utiliza $mysqli->prepare, es necesario cerrar la conexión?
Yo creería que no, pero no estoy muy seguro al respecto.
Lo del SET NAMES utf8 para utilizar consultas es algo que me quedo en el aire, con esto quiere decir que ya no deberia definir utf8 en mi html ni en el charset de php? o cual seria la forma adecuada de definir en todo mi desarrollo que voy a utilizar esa codificación?
Creo que esto, solo se hizo específicamente para trabajar con la consulta dentro de ese archivo. Si quieres esta codificación en el estado frontend de tu aplicación lo puedes estableces en el head de tu HTML sin problema. Sin embargo, creo que es simplemente para establecer esa convención dentro de las consultas que se puedan realizar.
Hola, me podrían ayudar con este error que no me ha dejado avanzar durante un buen rato.
Lo estoy haciendo con xampp en la última versión, todo actualizado, PHP 8.2, etc. Aún no logro conectar con la base de datos.
Ya probé colocando con server 127.0.0.1 y port 3306 como el ejemplo del compañero y no funciona.
<?php $server = "localhost"; $database = "finanzas_platzi"; $username = "root"; $password = "12345"; $mysqli = new mysqli($server, $database, $username, $password); if ($mysqli->connect_errno) die("falló la conexión: {$mysqli->connect_error}"); $setnames = $mysqli->prepare("SET NAMES 'utf8'"); $setnames->execute(); var_dump($setnames);
Me sale este error:
Se los agradecería si me dan una mano con esto, gracias.
Ya pude hallar la solución a este problema:
Que las variables estén en este orden y además agregar a "localhost:3306" y todo funcionando a las mil maravillas.
Me da error:
$mysqli = new mysqli($server, $username, $password, $database); //Comprobar conexión de manera orientada a objetos if ($mysqli->connect_errno) die("Falló la conexión: {$mysqli->connect_error}"); //Esto nos ayuda a efectuar cualquier consulta en nuestra DB $setnames = $mysqli->prepare("SET NAMES 'utf8'"); $setnames->execute(); var_dump($setnames);
Esto sale en el navegador:
Notice: Undefined variable: mysqli in /var/www/html/php-db/database/MySQLi/Connection.php on line 18
Notice: Trying to get property 'connect_errno' of non-object in /var/www/html/php-db/database/MySQLi/Connection.php on line 18
Notice: Undefined variable: mysqli in /var/www/html/php-db/database/MySQLi/Connection.php on line 22
Fatal error: Uncaught Error: Call to a member function prepare() on null in /var/www/html/php-db/database/MySQLi/Connection.php:22 Stack trace: #0 {main} thrown in /var/www/html/php-db/database/MySQLi/Connection.php on line 22
¿Está corriendo tu MariaDB?
Si corre, lo que pasa es que con esta conexión falla, pero no con la de PDO. No sé, me parece raro.
¿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