Gần đây tôi đã cập nhật dự án này để bao gồm tích hợp trình soạn thảo, kiểm tra đơn vị và xử lý chấp nhận đối số tốt hơn bằng tham chiếu (điều này yêu cầu cập nhật lên php 5.6).
tôi đã tạo ra một tập các lớp mở rộng mặc định mysqli
và mysqli_stmt
lớp để cho phép bạn xem một biểu hiện của chuỗi truy vấn tiềm năng, mà nên cung cấp những gì bạn đang tìm kiếm:
https://github.com/noahheck/E_mysqli
Đây là thay thế thả xuống (gần) cho đối tượng bình thường mysqli
trả về đối tượng mysqli_stmt
tùy chỉnh khi bạn prepare()
chuỗi truy vấn. Sau khi gắn các thông số của bạn, E_mysqli
sẽ cho phép bạn xem các chuỗi truy vấn kết quả như một thuộc tính mới của stmt
đối tượng:
$mysqli = new E_mysqli($dbHost, $dbUser, $dbPass, $dbName);
$query = "INSERT INTO registration SET name = ?, email = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param("ss", $_POST['name'], $_POST['email']);
$stmt->execute();
echo $stmt->fullQuery;
sẽ cho kết quả:
INSERT INTO registration SET name = 'John Doe', email = '[email protected]'
Có một số hãy cẩn thận với việc sử dụng phần mở rộng này (được giải thích trong README tại dự án github), nhưng để gỡ rối các vùng phiền toái của ứng dụng của bạn, hoặc chuyển sang một kiểu hướng đối tượng từ thủ tục, điều này sẽ cung cấp mức trợ giúp cho hầu hết người dùng.
Như tôi đã phác thảo trong dự án github, tôi không có bất kỳ kinh nghiệm thực tế nào khi sử dụng phần mở rộng mysqli
và dự án này được tạo theo yêu cầu của người dùng của dự án chị em đó, vì vậy bất kỳ phản hồi nào có thể được cung cấp từ devs bằng cách sử dụng này trong sản xuất sẽ được đánh giá rất nhiều.
Tuyên bố từ chối - Như tôi đã nói, tôi đã thực hiện tiện ích mở rộng này.
cũng thats một chút gây phiền nhiễu = \ Bạn nghĩ rằng có một cách để lấy câu lệnh thực hiện – Stomped
Nếu bạn cần điều này ở phía PHP, chủ yếu cho các lý do gỡ lỗi, tôi giả sử, bạn có thể "tái xây dựng" SQL truy vấn tương đương với việc thực hiện câu lệnh: bạn sẽ phải thay thế các phần giữ chỗ bằng các giá trị của các biến * (thoát khỏi dữ liệu, tất nhiên, sẽ được để lại cho bạn) * ;;; nếu bạn cần điều này thường xuyên, bạn sẽ có thể viết một hàm thực hiện điều này cho bạn; khác, một vài 'var_dump' đã giúp bạn xem dữ liệu nào được gửi đến máy chủ MySQL. –
@stomped Điểm chính là không có câu lệnh nào được thực thi. Bước đó bị bỏ qua hoàn toàn. – troelskn