Académique Documents
Professionnel Documents
Culture Documents
Desarrollo Android
Datos
Como Conectar Php y Mysql a travs de PDO y MySQLi?
?>
//MySQL clsico
require_once 'mysql-login.php';
//Conectando
$con = mysql_connect($hostname, $username, $password);
//Manejo de errores
if (!$con)
die("Fall la conexin a MySQL: " . mysql_error());
else
echo "Conexin exitosa!";
//Seleccionar base de datos
mysql_select_db($database)
or die("Seleccion de base de datos fallida " . mysql_error());
mysql_close();
//MySQL PDO
require_once 'mysql-login.php';
try {
$con =
new PDO('mysql:host='.$hostname.';dbname='.
//MySQLi
require_once 'mysql-login.php';
$mysqli = new mysqli($hostname, $username,$password, $database);
if ($mysqli -> connect_errno) {
die( "Fallo la conexin a MySQL: (" . $mysqli -> mysqli_connect_errno()
. ") " . $mysqli -> mysqli_connect_error());
}
else
echo "Conexin exitosa!";
$mysqli -> mysqli_close();
MySQLi
PDO
mysql_connect():
Funcin para abrir
la conexin
mysql_select_db():
Selecciona la base
de datos
La base de datos es
seleccionada en el
constructorPDO
La base de datos es
seleccionada en el
constructor PDO
Usar retorno
booleano de
mysql_connect()
Usa el atributo
connect_errno para
comprobar la
existencia de errores
mysql_close():
Funcin que cierra
la conexin
mysqli_close():
Mtodo de la
clasemysqli para
cerrar la conexin.
//MySQL clsico
$resultado = mysql_query("UPDATE PROFESOR SET NOMBRE ='Brenda' WHERE
ID=2");
if(!$resultado)
die("Fallo el comando:".mysql_error());
else
echo mysql_affected_rows()."Filas afectadas";
//PDO
$count = $con->exec("UPDATE PROFESOR SET NOMBRE ='Brenda' WHERE ID=2");
print($count." Filas afectadas");
//MySQLi
if ($mysqli->query("UPDATE
PROFESOR
SET
NOMBRE
='Brenda'
WHERE
MySQLi
PDO
mysql_query(): Funcin
que ejecuta un comando
en la base de datos.
query(): Mtodo de la
clasemysqli para
ejecutar un comando.
exec(): Mtodo de la
clase PDO para
ejecutar un comando
que solo afecta la base
de datos.
mysql_affected_rows():
Retorna en la cantidad de
filas afectadas
affected_rows: Atributo
de la clase mysqli que
guarda la cantidad de
filas afectadas.
El retorno de exec() es
la cantidad de filas
afectadas por la
sentencia.
//MySQLi
$query = "SELECT * FROM AVIONES";
$resultado=$mysqli->query($query);
print("<table>");
MySQLi
PDO
fetch_assoc():
Mtodo de la
clase
mysqli_result que
obtiene una fila
de la consulta en
forma de array
asociativo.
free(): Libera la
memoria asociada
Pues bien, las APIs de MySQL para Php utilizan este mismo formato
para preparar un comando.
Supn
que
has
creado
un formulario que
recibe
el nombre, apellido, edad y el correo electrnico de un usuario.
Ahora deseas que cuando el usuario de clic en el botn de
confirmacin estos campos sean guardados en tu tabla USUARIO.
Veamos como solucionarlo en los tres complementos.
//MySQL clsico
$query = 'PREPARE sentencia FROM "INSERT INTO usuario VALUES(NULL,?,?,?,?)"';
$resultado = mysql_query($query);
if(!$resultado)
die("Fallo el comando:".mysql_error());
else{
print("PREPARE exitoso!</br>");
$query ='SET @nombre = "'.$nombre.'"'.',@apellido ="'.$apellido.'"'
.',@edad ='.$edad.',@email='.$email;
if(!mysql_query($query))
die("Error en SET: ".mysql_error());
$query = 'EXECUTE sentencia USING @nombre,@apellido,@edad';
if(!mysql_query($query))
die("Error en EXECUTE:".mysql_error());
$query = 'DEALLOCATE PREPARE sentencia';
if(!mysql_query($query))
die("Error en DEALLOCATE:".mysql_error());
}
//MySQLi
if ($stmt = $mysqli->prepare("INSERT INTO usuario VALUES(NULL,?,?,?,?)") ){
/* ligar parmetros para marcadores */
$stmt->bind_param("ssds", $nombre,$apellido,$edad,$email);
/* ejecutar la consulta */
$stmt->execute();
/* cerrar sentencia */
$stmt->close();
}
else{
echo "Error al ejecutar la sentencia preparada".$mysqli->error;
}
//PDO
$cmd = $con->prepare('INSERT INTO usuario VALUES(NULL,?,?,?,?)');
$cmd->execute(array($nombre,$apellido,$edad,$email));
PDO
//MySQLi
if ($stmt = $mysqli->prepare("CALL sp_estadistica_curso(?)") ){
/* ligar parmetros para marcadores */
$stmt->bind_param("d", $Id_curso);
/* ejecutar la consulta */
$stmt->execute();
$resultado = $stmt->get_result();
print("<table>");
while($rows=$resultado->fetch_assoc()){
print("<tr>");
print("<td>".$rows["NO_ALUMNOS"]);
print("<td>".$rows["NOTA_MEDIA"]);
print("<td>".$rows["NOTA_MAX"]);
print("<td>".$rows["NOTA_MIN"]);
print("</tr>");
}
print("</table>");
/* cerrar sentencia */
$stmt->close();
}
else{
echo "Error al ejecutar el procedimiento".$mysqli->error;
}