Hướng dẫn php mysql error not showing - lỗi php mysql không hiển thị

Tôi đã tạo một tập lệnh trên nền tảng Windows kết nối với cơ sở dữ liệu MySQL và trả về kết quả của bảng. Một kịch bản rất cơ bản mà tôi đã viết để kiểm tra kết nối của tôi hoạt động. Kịch bản hoạt động tốt trên máy Windows của tôi nhưng không phải trên máy Mac mới của tôi. Trên Mac, nó đơn giản là không hiển thị bất kỳ bản ghi nào.

Tôi biết rằng kết nối cơ sở dữ liệu đã được thiết lập vì không có lỗi nhưng tôi không thể thấy lý do tại sao bộ kết quả không được hiển thị trên màn hình, như tôi đã nói nó hoạt động tốt trên máy Windows của tôi.

Mac có MySQL (với dữ liệu) và Apache chạy cho PHP.

Xin ai đó có thể giúp đỡ vì tôi không biết phải làm gì bây giờ?

Kịch bản bên dưới:

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = 'root';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');

$dbname = 'test';

mysql_select_db($dbname);

mysql_select_db("test", $conn);

$result = mysql_query("SELECT * FROM new_table");

while($row = mysql_fetch_array($result))
  {
  echo $row['test1'] . " " . $row['test2'] . " " . $row['test3'];
  echo "
"; } mysql_close($con);

Đã hỏi ngày 20 tháng 3 năm 2012 lúc 17:04Mar 20, 2012 at 17:04

Hướng dẫn php mysql error not showing - lỗi php mysql không hiển thị

NullpoiNullPoiиteя

55.5K22 Huy hiệu vàng124 Huy hiệu bạc141 Huy hiệu đồng22 gold badges124 silver badges141 bronze badges

5

Có nhiều điều bạn có thể làm để gỡ lỗi điều này.

  • Hiển thị tất cả các lỗi PHP.

    ini_set('display_errors','On');
    ini_set('error_reporting',E_ALL);
    
  • Bắt tất cả các lỗi MySQL có thể, không chỉ các lỗi liên quan đến việc bạn đã kết nối thành công.

    mysql_select_db("test", $conn) or die(mysql_error());
    mysql_select_db($dbname) or die(mysql_error());
    $result = mysql_query("SELECT * FROM new_table") or die(mysql_error());
    

Lưu ý bên cạnh: Không có lý do gì để chọn cơ sở dữ liệu nào bạn muốn sử dụng hai lần.: There's no reason to select which database you wish to use twice.

Đã trả lời ngày 20 tháng 3 năm 2012 lúc 17:08Mar 20, 2012 at 17:08

Rất khó để xem những gì sai ... vì vậy hãy thêm một số kiểm tra lỗi cơ bản, như thay đổi điều này

$result = mysql_query("SELECT * FROM new_table");

đến

$result = mysql_query("SELECT * FROM new_table") or die(mysql_error());

Điều này sẽ cho bạn thấy lỗi bạn đang nhận được từ truy vấn của bạn (nếu có) .. bạn sẽ thấy trong tài liệu cho

ini_set('display_errors','On');
ini_set('error_reporting',E_ALL);
0 rằng nó sẽ trả về
ini_set('display_errors','On');
ini_set('error_reporting',E_ALL);
1 nếu có lỗi

Cũng lưu ý rằng bạn có một lỗi trong tên biến để đóng kết nối MySQL:

mysql_close($con);

nên là

mysql_close($conn);

Đã trả lời ngày 20 tháng 3 năm 2012 lúc 17:06Mar 20, 2012 at 17:06

MansemanseManse

37.5K10 Huy hiệu vàng82 Huy hiệu bạc108 Huy hiệu đồng10 gold badges82 silver badges108 bronze badges

Kiểm tra xem liệu truy vấn

ini_set('display_errors','On');
ini_set('error_reporting',E_ALL);
2 có thành công hay không trước khi tìm nạp các hàng.

Đã trả lời ngày 20 tháng 3 năm 2012 lúc 17:07Mar 20, 2012 at 17:07

Điều duy nhất tôi có thể nghĩ đến là hệ thống tệp MAC nhạy cảm trong khi Windows không phải vậy, có thể bạn đã đặt sai tên của bảng. Trong bất kỳ CAS nào bạn nên làm

$result = mysql_query("SELECT * FROM new_table") or die("error:".mysql_error());

Để xem lỗi

Đã trả lời ngày 20 tháng 3 năm 2012 lúc 17:07Mar 20, 2012 at 17:07

Điều duy nhất tôi có thể nghĩ đến là hệ thống tệp MAC nhạy cảm trong khi Windows không phải vậy, có thể bạn đã đặt sai tên của bảng. Trong bất kỳ CAS nào bạn nên làmNicola Peluchetti

Để xem lỗi30 gold badges138 silver badges190 bronze badges

4

Nicola Peluchettinicola Peluchetti

        try
        {

            $db = new mysqli("localhost","root","root","test");

            if ($db->connect_errno) {
                throw new Exception($db->connect_error);
            }

            if ($result = $db->query("SELECT * FROM new_table")) {
                printf("Select returned %d rows.\n", $result->num_rows);


                while($row = $result->fetchAssoc())
                  {
                    echo $row['test1'] . " " . $row['test2'] . " " . $row['test3'];
                    echo "
"; } /* free result set */ $result->close(); } $db->close(); } catch(Exception $e) { printf("Database Error: %s\n", $e->getMessage()); exit(); }

75.1k30 Huy hiệu vàng138 Huy hiệu bạc190 Huy hiệu ĐồngMar 20, 2012 at 17:19

Hướng dẫn php mysql error not showing - lỗi php mysql không hiển thị

Tôi nghĩ bạn nên sử dụng trình điều khiển PHP MySQL cải tiếnBaba

Đã trả lời ngày 20 tháng 3 năm 2012 lúc 17:1928 gold badges164 silver badges215 bronze badges

1

Làm thế nào hiển thị thông báo lỗi MySQL trong PHP?

Thay vào đó, mô tả, sử dụng mysql_error () để truy xuất văn bản lỗi. Lưu ý rằng hàm này chỉ trả về văn bản lỗi từ hàm mySQL được thực thi gần đây nhất (không bao gồm mysql_error () và mysql_errno ()), vì vậy nếu bạn muốn sử dụng nó, hãy đảm bảo bạn kiểm tra giá trị trước khi gọi hàm MySQL khác.use mysql_error() to retrieve the error text. Note that this function only returns the error text from the most recently executed MySQL function (not including mysql_error() and mysql_errno()), so if you want to use it, make sure you check the value before calling another MySQL function.

Làm cách nào để hiển thị lỗi mysql?

Câu lệnh Lỗi số lượng hiển thị (*) hiển thị số lượng lỗi.Bạn cũng có thể truy xuất số này từ biến ERROR_COUNT: hiển thị lỗi đếm (*);Chọn @@ Error_Count;Hiển thị lỗi và ERROR_Count chỉ áp dụng cho lỗi, không phải cảnh báo hoặc ghi chú.SHOW COUNT(*) ERRORS statement displays the number of errors. You can also retrieve this number from the error_count variable: SHOW COUNT(*) ERRORS; SELECT @@error_count; SHOW ERRORS and error_count apply only to errors, not warnings or notes.

Không thể kết nối với MySQL trong PHP?

PHP có thể không thể kết nối với máy chủ MySQL nếu tên máy chủ không được nhận dạng.Đảm bảo rằng tên máy chủ được đặt thành localhost.Trong trường hợp các lỗi khác, hãy đảm bảo tham khảo tệp ERROR_LOG để giúp khi cố gắng giải quyết mọi vấn đề.Tệp được đặt trong cùng một thư mục nơi tập lệnh đang chạy.if the server name is not recognized. Make sure that the server name is set to localhost. In case of other errors, make sure to consult the error_log file to help when trying to solve any issues. The file is located in the same folder where the script is running.

Lệnh MySQL nào có thể được sử dụng để thay thế cho mysql_select_db ()?

Thay vào đó, phần mở rộng MySQLI hoặc PDO_MYSQL nên được sử dụng.Xem thêm MySQL: Chọn hướng dẫn API.Các lựa chọn thay thế cho hàm này bao gồm: mysqli_select_db ()mysqli_select_db()