Tương đương PDO là gì:
mysqli_stat[$dbConn];
P.S. Tôi sử dụng nó để [nhận một tin nhắn để] đảm bảo tôi được kết nối
hỏi ngày 6 tháng 2 năm 2014 lúc 6:14Feb 6, 2014 at 6:14
1
Tôi không thể nhận được tín dụng cho câu trả lời này. Ai đó đã đăng câu trả lời, nhưng sau đó anh ấy/cô ấy đã xóa mục.
Đây là câu trả lời [saved archived]
cho câu hỏi của bạn:
$status = $conn->getAttribute[PDO::ATTR_CONNECTION_STATUS];
Đã trả lời ngày 6 tháng 2 năm 2014 lúc 6:47Feb 6, 2014 at 6:47
OmaromarOmar
11.4K21 Huy hiệu vàng84 Huy hiệu bạc109 Huy hiệu đồng21 gold badges84 silver badges109 bronze badges
1
$ pdo-> getAttribution [pdo :: attr_connection_status] Luôn trả về "127.0.0.1 qua TCP/IP" Ngay cả khi tôi dừng MySQLD, hãy sử dụng:
if [$pdo->getAttribute[PDO::ATTR_SERVER_INFO]=='MySQL server has gone away']
{
$pdo=new PDO['mysql:host=127.0.0.1;port=3306;dbname=mydb;charset=UTF8', 'root', '', array[PDO::ATTR_PERSISTENT=>true]];
}
Đã trả lời ngày 3 tháng 8 năm 2015 lúc 11:31Aug 3, 2015 at 11:31
DIYISMDIYISMdiyism
12.2k5 Huy hiệu vàng46 Huy hiệu bạc45 Huy hiệu Đồng5 gold badges46 silver badges45 bronze badges
Các kết nối được thiết lập bằng cách tạo các trường hợp của lớp cơ sở PDO. Không quan trọng bạn muốn sử dụng trình điều khiển nào; Bạn luôn sử dụng tên lớp PDO. Constructor chấp nhận các tham số để chỉ định nguồn cơ sở dữ liệu [được gọi là DSN] và tùy chọn cho tên người dùng và mật khẩu [nếu có].
Ví dụ #1 Kết nối với MySQL
Nếu có bất kỳ lỗi kết nối, đối tượng PDOException
sẽ bị ném. Bạn có thể bắt được ngoại lệ nếu bạn muốn xử lý tình trạng lỗi hoặc bạn có thể chọn để lại cho một trình xử lý ngoại lệ toàn cầu của ứng dụng mà bạn thiết lập thông qua SET_Exception_Handler [].set_exception_handler[].
Ví dụ #2 Lỗi kết nối xử lý
Cảnh báo
Nếu ứng dụng của bạn không bắt được ngoại lệ được ném từ hàm tạo PDO, hành động mặc định được thực hiện bởi động cơ Zend là chấm dứt tập lệnh và hiển thị dấu vết trở lại. Dấu vết trở lại này có thể sẽ tiết lộ các chi tiết kết nối cơ sở dữ liệu đầy đủ, bao gồm tên người dùng và mật khẩu. Bạn có trách nhiệm bắt được ngoại lệ này, rõ ràng [thông qua câu lệnh catch
] hoặc ngầm thông qua SET_EXception_Handler [].set_exception_handler[].
Khi kết nối thành công với cơ sở dữ liệu, một thể hiện của lớp PDO được trả lại cho tập lệnh của bạn. Kết nối vẫn hoạt động trong suốt vòng đời của đối tượng PDO đó. Để đóng kết nối, bạn cần phá hủy đối tượng bằng cách đảm bảo rằng tất cả các tham chiếu còn lại cho nó đều bị xóa, bạn làm điều này bằng cách gán null
cho biến giữ đối tượng. Nếu bạn không làm điều này một cách rõ ràng, PHP sẽ tự động đóng kết nối khi tập lệnh của bạn kết thúc.null
to the variable
that holds the object. If you don't do this explicitly, PHP will automatically close the connection when your script ends.
Lưu ý: Nếu vẫn còn các tham chiếu khác về thể hiện PDO này [chẳng hạn như từ một phiên bản pdostatement hoặc từ các biến khác tham chiếu cùng một thể hiện PDO], chúng cũng phải được xóa [ví dụ, bằng cách gán
null
cho biến tham chiếu Pdostatement].: If there are still other references to this PDO instance [such as from a PDOStatement instance, or from other variables referencing the same PDO instance], these have to be removed also [for instance, by assigningnull
to the variable that references the PDOStatement].
Ví dụ #3 Đóng kết nối
$status = $conn->getAttribute[PDO::ATTR_CONNECTION_STATUS];
0Nhiều ứng dụng web sẽ được hưởng lợi từ việc tạo các kết nối liên tục cho các máy chủ cơ sở dữ liệu. Các kết nối liên tục không được đóng ở cuối tập lệnh, nhưng được lưu trữ và sử dụng lại khi một tập lệnh khác yêu cầu kết nối bằng cách sử dụng cùng một thông tin đăng nhập. Bộ đệm kết nối liên tục cho phép bạn tránh chi phí thiết lập kết nối mới mỗi khi tập lệnh cần nói chuyện với cơ sở dữ liệu, dẫn đến một ứng dụng web nhanh hơn.
Ví dụ #4 Kết nối liên tục
$status = $conn->getAttribute[PDO::ATTR_CONNECTION_STATUS];
1Giá trị của tùy chọn
$status = $conn->getAttribute[PDO::ATTR_CONNECTION_STATUS];
2 được chuyển đổi thành BOOL [Kích hoạt/Vô hiệu hóa các kết nối liên tục], trừ khi đó là chuỗi không phải là số, trong trường hợp đó cho phép sử dụng nhiều nhóm kết nối liên tục. Điều này rất hữu ích nếu các kết nối khác nhau sử dụng các cài đặt không tương thích, ví dụ, các giá trị khác nhau của $status = $conn->getAttribute[PDO::ATTR_CONNECTION_STATUS];
3.$status = $conn->getAttribute[PDO::ATTR_CONNECTION_STATUS];
2 option is converted to bool [enable/disable persistent connections], unless it is a non-numeric string, in which case it allows to use multiple persistent connection pools. This is useful if different connections use incompatible settings, for instance,
different values of $status = $conn->getAttribute[PDO::ATTR_CONNECTION_STATUS];
3. Ghi chú::
Nếu bạn muốn sử dụng các kết nối liên tục, bạn phải đặt
2 trong mảng các tùy chọn trình điều khiển được chuyển cho hàm tạo PDO. Nếu cài đặt thuộc tính này với pdo :: setAttribution [] Sau khi khởi tạo đối tượng, trình điều khiển sẽ không sử dụng các kết nối liên tục.$status = $conn->getAttribute[PDO::ATTR_CONNECTION_STATUS];
2 in the array of driver options passed to the PDO constructor. If setting this attribute with PDO::setAttribute[] after instantiation of the object, the driver will not use persistent connections.$status = $conn->getAttribute[PDO::ATTR_CONNECTION_STATUS];
Ghi chú::
Nếu bạn muốn sử dụng các kết nối liên tục, bạn phải đặt
2 trong mảng các tùy chọn trình điều khiển được chuyển cho hàm tạo PDO. Nếu cài đặt thuộc tính này với pdo :: setAttribution [] Sau khi khởi tạo đối tượng, trình điều khiển sẽ không sử dụng các kết nối liên tục.$status = $conn->getAttribute[PDO::ATTR_CONNECTION_STATUS];
Không có người dùng đóng góp ghi chú cho trang này.