Ответ 1
Нет, вы не можете использовать mysql
и mysqli
вместе. Они представляют собой отдельные API-интерфейсы, и создаваемые ими ресурсы несовместимы друг с другом.
Однако существует mysqli_close
.
Я обыскал сеть, и до сих пор я видел, что вы можете использовать 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
и mysqli
вместе. Они представляют собой отдельные API-интерфейсы, и создаваемые ими ресурсы несовместимы друг с другом.
Однако существует mysqli_close
.
Просто, чтобы дать общий ответ здесь обо всех трех MYSQL API со ссылкой:
Вы не можете смешивать ни один из трех (mysql_*
, mysqli_*
, PDO
) MYSQL API из PHP вместе, он просто не работает. Это даже в часто задаваемых часто задаваемых вопросах:
невозможно смешивать расширения. Так, например, передача mysqli-соединения с PDO_MySQL или ext/mysql не будет работать.
Вам нужно использовать тот же API MySQL и связанные с ним функции, от подключения к запросам.
Технически вы можете использовать столько отдельных подключений, сколько хотите, в то время как ваша проблема вызвана простой опечаткой - вы не можете использовать ресурсы только из одного расширения с функциями из другого, что вполне очевидно.
Однако вы должны избегать нескольких подключений от одного и того же script, независимо от одного API или другого. Поскольку это будет обременять ваш сервер базы данных и исчерпывать его ресурсы. Итак, хотя технически вы можете, вы не должны смешивать разные расширения в своем коде, за исключением короткого периода рефакторинга.
MySQLi
намного более безопасен, чем MySQL
который в любом случае устарел. Вот почему вы должны придерживаться MySQLi
а также не можете смешивать их, поскольку они оба разные.
с моей стороны я думаю, что вы можете, но вам придется делать файлы для подключения к
потому что mysqli_*
будет принимать только mysqli_connect
и поэтому с mysql_*
вы можете попытаться изучить PDO Better