Я шукав мережу, і поки що я бачив, що ви можете використовувати 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
разом? Або це нормально? Чи я можу перевірити, чи підключення взагалі дійсні? (the if(mysq...)
)
mysql_*
функцій взагалі. Вони схильні до помилок і небезпечні, і незабаром їх буде видалено з PHP ( на даний момент вони позначені як застарілі ). [Ця чудова відповідь] [0] детальніше пояснює, чому вони погані. [0]: stackoverflow.com/a/12860046/1055295
mysqli_*
функціями та хороший код з mysql_*
ними. Але остання категорія позначена як застаріла, оскільки вона є неповноцінним набором функцій, не в змозі підтримувати виклики у стилі OO або навіть підготовлені заяви (назвати лише два приклади). З огляду на вибір двох інструментів для виконання однієї і тієї ж роботи, один з яких явно кращий у довгостроковій перспективі та гнучкіший, чи не очевидна правильна відповідь?