2012-03-23 28 views
6

tôi đi qua này: -làm thế nào để sử dụng ném ngoại lệ trong cơ sở dữ liệu mysql kết nối

PHP Error handling: die() Vs trigger_error() Vs throw Exception

và hiểu rằng ném ngoại lệ là tốt hơn

Làm thế nào tôi có thể thay thế chết và sử dụng ném ngoại lệ ở đây trong này code: -

<?php 
# FileName="Connection_php_mysql.htm" 
# Type="MYSQL" 
# HTTP="true" 
$hostname_db = "localhost"; 
$database_db = "database"; 
$username_db = "root"; 
$password_db = "password"; 
$db = mysqli_connect($hostname_db, $username_db, $password_db) or die("Unable to connect with Database"); 
?> 
+0

Đã tự hỏi mình điều tương tự. Cảm ơn bạn đã đăng câu hỏi này :) –

Trả lời

9
try 
{ 
    if ($db = mysqli_connect($hostname_db, $username_db, $password_db)) 
    { 
     //do something 
    } 
    else 
    { 
     throw new Exception('Unable to connect'); 
    } 
} 
catch(Exception $e) 
{ 
    echo $e->getMessage(); 
} 
+0

tôi cần phải thay thế 'chết (" Không thể kết nối với Cơ sở dữ liệu ");' với mã của bạn? Bạn cũng có thể cho tôi biết '@ $ _ POST ['variable']' –

+1

Bạn nên thay thế dòng cuối cùng của mình bằng cách này. @ - đang bật chế độ im lặng, không có lỗi nào được lặp lại nhưng vẫn đăng nhập vào tệp error.log của máy chủ của bạn. Tôi đoán bạn biết '$ _POST ['biến']' là gì. – slash197

+0

vâng tôi biết rằng ... cảm ơn vì thông tin :) –

3

đây là tài liệu ở đây 0.123.

if (mysqli_connect_errno()) { 
    throw new RuntimeException("Connect failed: %s\n", mysqli_connect_error()); 
} 
+1

ok '$ db = mysqli_connect ($ hostname_db, $ username_db, $ password_db) or die ("Không thể kết nối với cơ sở dữ liệu");' tôi phải thay thế với '$ db = mysqli_connect này ($ hostname_db, $ username_db, $ password_db); nếu (mysqli_connect_errno()) { ném RuntimeException mới ("Kết nối không thành công:% s \ n", mysqli_connect_error()); } ' –

Các vấn đề liên quan