2014-04-17 24 views
10

Tôi đang di chuyển từ MySQL sang MS SQL Server và cố tìm nạp tất cả dữ liệu từ bảng thường trình. Tôi đang kết nối nhưng không chắc chắn làm thế nào để lấy dữ liệu với sqlsrv. Đây là cách nay tôi đã đến:Truy vấn sqlsrv PHP vào cơ sở dữ liệu

$conn_array = array (
    "UID" => "sa", 
    "PWD" => "root", 
    "Database" => "nih_bw", 
); 
$conn = sqlsrv_connect('BILAL', $conn_array); 
if ($conn){ 
    echo "connected"; 
    $result = sqlsrv_query($db->db_conn,"SELECT * FROM routines"); 
}else{ 
    die(print_r(sqlsrv_errors(), true)); 
} 
sqlsrv_close($conn); 
?> 

Trả lời

9

Đầu tiên nếu tôi không sai, bạn đang lưu trữ sqlsrv_connect kết quả thành $conn và kết quả này không phải là một lớp obj là tài nguyên của nó, vì vậy hãy xóa $db->conn

Ví dụ này, sẽ kết nối, sau đó lấy nếu có nguồn lực trở về từ sqlsrv_query

$conn_array = array (
    "UID" => "sa", 
    "PWD" => "root", 
    "Database" => "nih_bw", 
); 
$conn = sqlsrv_connect('BILAL', $conn_array); 
if ($conn){ 
    echo "connected"; 
    if(($result = sqlsrv_query($conn,"SELECT * FROM routines")) !== false){ 
     while($obj = sqlsrv_fetch_object($result)) { 
       echo $obj->colName.'<br />'; 
     } 
    } 
}else{ 
    die(print_r(sqlsrv_errors(), true)); 
} 
1

Sau khi bạn đã thực hiện thành công các truy vấn với sqlsrv_query bạn có thể lấy kết quả, ví dụ, bằng cách sử dụng sqlsrv_fetch_array:

$result = sqlsrv_query($db->db_conn, "SELECT * FROM routines"); 
if($result === false) { 
    die(print_r(sqlsrv_errors(), true)); 
} 

while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) { 
    echo $row['column1'].", ".$row['column2']."<br />"; 
} 
+0

tôi nhận được lỗi này: https://www.dropbox.com/s/lod1s8olf1iwog3/errors.png, nó trong dòng $ result nó sai. – user3185936

+0

'$ db-> db_conn' của bạn là' null' ... – Mureinik

+0

Tôi không chắc liệu $ db-> db_conn có đúng không. – user3185936

0

Hãy thử điều này:

while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) { 
    var_dump($row); 
} 

sqlsrv_free_stmt($result); 
+2

Khi bạn trả lời bằng mã, vui lòng cung cấp giải thích ngắn gọn cùng với mật mã. – Thom

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