He buscado en la red y hasta ahora lo que he visto es que pueden usar mysql_
y mysqli_
juntos significa:
<?php
$con=mysqli_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysql_close($con);
echo "Done";
?>
o
<?php
$con=mysql_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysqli_close($con);
echo "Done";
?>
Son válidos pero cuando uso este código lo que obtengo es:
Connected
Warning: mysql_close() expects parameter 1 to be resource, object given in D:\************.php on line 9
Done
Para el primero y el mismo excepto con mysqli_close()
. Para el segundo.
¿Cuál es el problema? ¿No puedo usar mysql_
y mysqli
juntos? ¿O es normal? ¿Es la forma en que puedo comprobar si las conexiones son válidas? (el if(mysq...)
)
mysql_*
funciones por completo. Son propensos a errores e inseguros, y pronto se eliminarán de PHP (están marcados como obsoletos en este momento). [Esta gran respuesta] [0] explica con más detalle por qué son malos. [0]: stackoverflow.com/a/12860046/1055295
mysqli_*
funciones y código bueno con mysql_*
otras. Pero la última categoría está marcada como obsoleta ya que es el conjunto inferior de funciones, no pudiendo admitir invocaciones de estilo OO o incluso declaraciones preparadas (por nombrar solo dos ejemplos). Dada la opción de dos herramientas para hacer el mismo trabajo, una de las cuales es claramente mejor a largo plazo y más flexible, ¿no es obvia la respuesta correcta?