Điểm:0

Kết nối PHP với Maria DB

lá cờ lk

Hy vọng ai đó có thể giải thích sự cố mà tôi đã tìm thấy khi thực hiện một kết nối đơn giản giữa PHP 7 và MariaDB Server 10.3.32 trên Ubuntu 20.04.

Đây là dữ liệu kết nối:

$dsn = "mysql:localhost; dbname=databasename; charset=utf8mb4";  
$options = [ PDO::ATTR_EMULATE_PREPARES => sai,  
             PDO::ATTR_ERRMODE => PDO::ERRORMODE_EXCEPTION,   
             PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
            ];
$pdo = PDO mới($dsn, "tên người dùng", "mật khẩu", $options);

Các tùy chọn $ cần phải được gỡ bỏ trước khi nó xuất dữ liệu chuỗi cho chương trình.Nếu không làm điều này, tôi sẽ chỉ nhận được các hộp đen mà tôi cho là một loại dữ liệu nào đó chứ không phải các chuỗi mà tôi đang tìm kiếm.

Tôi đã cố gắng bình luận ra PDO::ATTR_DEFAULT_FETCH_MODE=>PDO::FETCH_ASSOC, nhưng tôi vẫn gặp sự cố. Tôi nhận thấy rằng nếu tôi nhận xét PDO::ATTR_DEFAULT_FETCH_MODE=> PDO::FETCH_ASSOC, tôi có thể sử dụng vòng lặp for để lấy thông tin với chỉ số số $dvds[0][0]; nhưng tôi không thể sử dụng tên của cột cơ sở dữ liệu tức là. $dvds['title']; nếu tôi không ghi chú, tôi có thể lấy nó bằng print_r nhưng tôi không nhận được gì trong vòng lặp for bằng cách sử dụng số hoặc chỉ mục kết hợp. Kỳ dị! Tôi phát hiện ra rằng tôi đã không truy cập dữ liệu được trả về đúng cách. Tôi cần sử dụng vòng lặp foreach sau đó truy cập từng hàng theo tiêu đề liên kết của từng cột trong cơ sở dữ liệu. Cảm ơn.

Mike G avatar
lá cờ lk
nó sẽ đọc $dsn = "mysql:host=localhost; dbname=databasename;charset=utf8mb4";
Mike G avatar
lá cờ lk
Tôi nhận thấy rằng nếu tôi nhận xét PDO::ATTR_DEFAULT_FETCH_MODE=> PDO::FETCH_ASSOC, tôi có thể sử dụng vòng lặp for để lấy thông tin với chỉ số số $dvds[0][0]; nhưng tôi không thể sử dụng tên của cột cơ sở dữ liệu tức là. $dvds['title']; nếu tôi không ghi chú, tôi có thể lấy nó bằng print_r nhưng tôi không nhận được gì trong vòng lặp for bằng cách sử dụng số hoặc chỉ mục kết hợp. Kỳ dị!
Điểm:0
lá cờ lk

Sau một tuần thử mọi thứ, cuối cùng tôi phát hiện ra rằng vấn đề là mã CSS có nền tất cả các bảng là màu đen và văn bản có màu đen nên không thể nhìn thấy gì.Tôi không thể tin được nhưng đây là vấn đề ngay từ đầu. Tôi cảm thấy ngớ ngẩn khi đăng bài này nhưng có lẽ nó sẽ giúp ích cho người khác. Cảm ơn.

Điểm:-1
lá cờ ec

có thể bạn đang mất tích máy chủ = về bạn $dsn phân công?

Thích:

$dsn = "mysql:host=localhost; dbname=databasename; charset=utf8mb4";
Mike G avatar
lá cờ lk
Đó dường như không phải là vấn đề vì khi tôi nhận xét các tùy chọn, kết nối sẽ hoạt động và cung cấp dữ liệu mong đợi. Cảm ơn đề nghị của bạn.
Mike G avatar
lá cờ lk
Khi gõ câu hỏi tôi quên nhập host nhưng nó nằm trong chuỗi trong chương trình. Cảm ơn đã chỉ ra điều đó. Tôi vẫn không biết tại sao các tùy chọn không đúng. Cảm ơn

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.