Tôi đã tìm kiếm trên mạng và cho đến nay những gì tôi thấy là bạn có thể sử dụng mysql_
và mysqli_
cùng nhau có nghĩa là:
<?php
$con=mysqli_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysql_close($con);
echo "Done";
?>
hoặc là
<?php
$con=mysql_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysqli_close($con);
echo "Done";
?>
Hợp lệ nhưng khi tôi sử dụng mã này, những gì tôi nhận được là:
Connected
Warning: mysql_close() expects parameter 1 to be resource, object given in D:\************.php on line 9
Done
Đối với đầu tiên và giống nhau ngoại trừ với mysqli_close()
. Đối với cái thứ hai.
Vấn đề là gì? Tôi không thể sử dụng mysql_
và mysqli
cùng nhau? Hay là nó bình thường? Là cách tôi có thể kiểm tra xem các kết nối có hợp lệ không? (cái if(mysq...)
)
mysql_*
chức năng hoàn toàn. Chúng dễ xảy ra lỗi và không an toàn, và chúng sẽ sớm bị xóa khỏi PHP (chúng được đánh dấu là không dùng nữa vào lúc này). [Câu trả lời tuyệt vời này] [0] đi sâu hơn vào giải thích lý do tại sao chúng tệ. [0]: stackoverflow.com/a/12860046/1055295
mysqli_*
chức năng và mã tốt với các chức năng mysql_*
. Nhưng danh mục thứ hai được đánh dấu là không được dùng nữa vì nó là tập hợp hàm kém hơn, không thể hỗ trợ các lệnh gọi kiểu OO hoặc thậm chí các câu lệnh đã chuẩn bị (chỉ nêu tên hai ví dụ). Đưa ra lựa chọn hai công cụ để thực hiện cùng một công việc, một trong số đó rõ ràng là tốt hơn về lâu dài và linh hoạt hơn, câu trả lời đúng không rõ ràng sao?