Я искал в сети и пока что увидел, что вы можете использовать mysql_
и mysqli_
вместе, что означает:
<?php
$con=mysqli_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysql_close($con);
echo "Done";
?>
или
<?php
$con=mysql_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysqli_close($con);
echo "Done";
?>
Действительны, но когда я использую этот код, я получаю следующее:
Connected
Warning: mysql_close() expects parameter 1 to be resource, object given in D:\************.php on line 9
Done
Для первого и того же кроме с mysqli_close()
. Для второго.
В чем проблема? Разве нельзя использовать mysql_
и mysqli
вместе? Или это нормально? Могу ли я проверить, действительны ли вообще соединения? (в if(mysq...)
)
mysql_*
вообще избегать использования функций. Они подвержены ошибкам и небезопасны, и вскоре будут удалены из PHP ( на данный момент они помечены как устаревшие ). [Этот замечательный ответ] [0] более подробно объясняет, почему они плохие. [0]: stackoverflow.com/a/12860046/1055295
mysqli_*
функциями, а хороший - с mysql_*
ними. Но последняя категория помечена как устаревшая, поскольку это неполноценный набор функций, неспособный поддерживать вызовы в стиле объектно-ориентированного программирования или даже подготовленные операторы (это всего лишь два примера). Учитывая выбор из двух инструментов для выполнения одной и той же работы, один из которых явно лучше в долгосрочной перспективе и более гибкий, не очевиден ли правильный ответ?