Me 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 =newmysqli($server,$username,$password,$database);// comprobar la conexion de manera procedural// if(!$mysqli){// die("Fallo la conexion:" . mysqli_connect_errno());// }// comprobar la conexion orientada a objetosif($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.
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 =newmysqli($server, $username, $password, $database);//Comprobar conexión de manera orientada a objetosif($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:
Servidor: puede ser localhost si la base de datos en la que estamos trabajando se encuentra en el mismo host de nuestra aplicación o una ip si es el caso de que la base se encuentre en otro servidor.
Nombre de la base de datos
Nombre del usuario de la base
Nombre de la contraseña asignada al usuario
Para establecer la conexión tenemos 2 formas de hacerlo:
Forma orientada a objetos:
$mysqli=newmysqli($server,$username,$password,$database);// Comprobar la conexion de manera orientada a objetosif($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 proceduralif(!$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
connect_errno(): Devuelve el código de error de la última llamada a la función de conexión,
yo tengo instalado XAMMP en mi pc, para que la conexión me funcionara hice esto: