Eu procurei na net e até agora o que eu tenho visto é que você pode usar mysql_
e mysqli_
juntos o que 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";
?>
ou
<?php
$con=mysql_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysqli_close($con);
echo "Done";
?>
São válidos, mas quando uso este código o que recebo é:
Connected
Warning: mysql_close() expects parameter 1 to be resource, object given in D:\************.php on line 9
Done
Para o primeiro e o mesmo, exceto com mysqli_close()
. Para o segundo.
Qual é o problema? Não posso usar mysql_
e mysqli
junto? Ou isso é normal? Posso verificar se as conexões são válidas? (o if(mysq...)
)
mysql_*
funções completamente. Eles estão sujeitos a erros e inseguros, e serão removidos do PHP em breve (eles estão marcados como obsoletos no momento). [Esta ótima resposta] [0] entra em detalhes explicando por que eles são ruins. [0]: stackoverflow.com/a/12860046/1055295
mysqli_*
funções e código bom com mysql_*
algumas. Mas a última categoria está marcada como obsoleta por ser o conjunto inferior de funções, não sendo capaz de suportar invocações estilo OO ou mesmo instruções preparadas (para citar apenas dois exemplos). Dada a escolha de duas ferramentas para fazer o mesmo trabalho, uma das quais é claramente melhor no longo prazo e mais flexível, a resposta correta não é óbvia?