Hướng dẫn php connect sql server pdo - php kết nối máy chủ sql pdo

Bỏ qua nội dung chính

Trình duyệt này không còn được hỗ trợ.

Nâng cấp lên Microsoft Edge để tận dụng các tính năng mới nhất, cập nhật bảo mật và hỗ trợ kỹ thuật.

PDO::query

  • Bài báo
  • 09/09/2022
  • 2 phút để đọc

Trong bài viết này

Hướng dẫn php connect sql server pdo - php kết nối máy chủ sql pdo
Tải xuống trình điều khiển PHP

Thực thi truy vấn SQL và trả về một kết quả được đặt thành đối tượng pDostatement.

Cú pháp

  
PDOStatement PDO::query ($statement[, $fetch_style);  

Thông số

Tuyên bố $: Câu lệnh SQL bạn muốn thực thi.

$ fetch_style: Các hướng dẫn tùy chọn về cách thực hiện truy vấn. Xem phần Nhận xét để biết thêm chi tiết. $ fetch_style trong pdo :: Truy vấn có thể được ghi đè với $ fetch_style trong pdo :: tìm nạp.

Giá trị trả lại

Nếu cuộc gọi thành công, PDO :: Truy vấn trả về một đối tượng pdostatement. Nếu cuộc gọi không thành công, PDO :: Truy vấn ném một đối tượng PDOException hoặc trả về sai, tùy thuộc vào cài đặt của PDO :: attr_errmode.

Ngoại lệ

PDOException.

Nhận xét

Một truy vấn được thực thi bằng PDO :: Truy vấn có thể thực thi một câu lệnh đã chuẩn bị hoặc trực tiếp, tùy thuộc vào cài đặt của PDO :: SQLSRV_ATTR_DIRECT_Query. Để biết thêm thông tin, hãy xem thực thi câu lệnh trực tiếp và thực thi câu lệnh đã chuẩn bị trong trình điều khiển PDO_SQLSRV.

PDO :: SQLSRV_ATTR_Query_Timeout cũng ảnh hưởng đến hành vi của PDO :: Exec; Để biết thêm thông tin, xem PDO :: SetAttribution.

Bạn có thể chỉ định các tùy chọn sau cho $ fetch_style.

Phong cáchSự mô tả
Pdo :: fetch_column, numTruy vấn cho dữ liệu trong cột được chỉ định. Cột đầu tiên trong bảng là cột 0.
Pdo :: fetch_class, 'className', mảng (argrist)Tạo một thể hiện của một lớp và gán tên cột cho các thuộc tính trong lớp. Nếu hàm tạo lớp lấy một hoặc nhiều tham số, bạn cũng có thể vượt qua một arglist.
Pdo :: fetch_class, 'className'Gán tên cột cho các thuộc tính trong một lớp hiện có.

Gọi pDostatement :: CloseCursor để phát hành tài nguyên cơ sở dữ liệu được liên kết với đối tượng pDostatement trước khi gọi lại PDO :: Truy vấn.

Bạn có thể đóng một đối tượng pdostatement bằng cách đặt nó thành null.

Nếu tất cả dữ liệu trong một tập kết quả không được tìm nạp, cuộc gọi truy vấn PDO :: tiếp theo sẽ không bị lỗi.

Hỗ trợ cho PDO đã được thêm vào phiên bản 2.0 của trình điều khiển Microsoft cho PHP cho SQL Server.

Ví dụ truy vấn

Ví dụ này cho thấy một số truy vấn.

setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );  
$conn->setAttribute( PDO::SQLSRV_ATTR_QUERY_TIMEOUT, 1 );  
  
$query = 'select * from Person.ContactType';  
  
// simple query  
$stmt = $conn->query( $query );  
while ( $row = $stmt->fetch( PDO::FETCH_ASSOC ) ){  
   print_r( $row['Name'] ."\n" );  
}  
  
echo "\n........ query for a column ............\n";  
  
// query for one column  
$stmt = $conn->query( $query, PDO::FETCH_COLUMN, 1 );  
while ( $row = $stmt->fetch() ){  
   echo "$row\n";  
}  
  
echo "\n........ query with a new class ............\n";  
$query = 'select * from HumanResources.Department order by GroupName';  
// query with a class  
class cc {  
   function __construct( $arg ) {  
      echo "$arg";  
   }  
  
   function __toString() {  
      return $this->DepartmentID . "; " . $this->Name . "; " . $this->GroupName;  
   }  
}  
  
$stmt = $conn->query( $query, PDO::FETCH_CLASS, 'cc', array( "arg1 " ));  
  
while ( $row = $stmt->fetch() ){  
   echo "$row\n";  
}  
  
echo "\n........ query into an existing class ............\n";  
$c_obj = new cc( '' );  
$stmt = $conn->query( $query, PDO::FETCH_INTO, $c_obj );  
while ( $stmt->fetch() ){  
   echo "$c_obj\n";  
}  
  
$stmt = null;  
?>  

Ví dụ sql_variant

Mẫu mã này cho thấy cách tạo một bảng các loại sql_variant và lấy dữ liệu được chèn.

setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );  

try {
    $tableName = 'testTable';
    $query = "CREATE TABLE $tableName ([c1_int] sql_variant, [c2_varchar] sql_variant)";

    $stmt = $conn->query($query);
    unset($stmt);

    $query = "INSERT INTO [$tableName] (c1_int, c2_varchar) VALUES (1, 'test_data')";
    $stmt = $conn->query($query);
    unset($stmt);

    $query = "SELECT * FROM $tableName";
    $stmt = $conn->query($query);

    $result = $stmt->fetch(PDO::FETCH_ASSOC);
    print_r($result);
    
    unset($stmt);
    unset($conn);
} catch (Exception $e) {
    echo $e->getMessage();
}
?>

Đầu ra dự kiến ​​sẽ là:

Array
(
    [c1_int] => 1
    [c2_varchar] => test_data
)

Xem thêm

Lớp PDO

PDO

Nhận xét

Gửi và xem phản hồi cho

Tôi có thể kết nối PHP với SQL Server không?

Kết nối với cơ sở dữ liệu MS SQL Server với PHP rất giống với việc kết nối với cơ sở dữ liệu MySQL. Ví dụ sau đây cho thấy cách kết nối với cơ sở dữ liệu MS SQL từ PHP. Lưu ý rằng tên hàm chứa MSSQL, không phải MySQL.. The following example demonstrates how to connect to a MS SQL database from PHP. Note that the function names contain mssql, not mysql.

Kết nối PDO trong PHP là gì?

Các đối tượng dữ liệu PHP (PDO) xác định giao diện nhẹ để truy cập cơ sở dữ liệu trong PHP. Nó cung cấp một lớp trừu tượng truy cập dữ liệu để làm việc với cơ sở dữ liệu trong PHP. Nó xác định API nhất quán để làm việc với các hệ thống cơ sở dữ liệu khác nhau.defines a lightweight interface for accessing databases in PHP. It provides a data-access abstraction layer for working with databases in PHP. It defines consistent API for working with various database systems.

Làm thế nào để kích hoạt SQLSRV trong PHP ini?

Tiện ích mở rộng SQLSRV được bật bằng cách thêm tệp DLL thích hợp vào thư mục tiện ích mở rộng PHP của bạn và mục nhập tương ứng vào tệp PHP.ini.Tải xuống SQLSRV đi kèm với 8 tệp trình điều khiển, bốn trong số đó dành cho hỗ trợ PDO.Phiên bản gần đây nhất của trình điều khiển có sẵn để tải xuống tại đây: »Tải xuống SQLSRV.adding appropriate DLL file to your PHP extension directory and the corresponding entry to the php. ini file. The SQLSRV download comes with 8 driver files, four of which are for PDO support. The most recent version of the driver is available for download here: » SQLSRV download.

Tiện ích mở rộng PDO trong PHP là gì?

Tiện ích mở rộng đối tượng dữ liệu PHP (PDO) xác định giao diện nhẹ, nhất quán để truy cập cơ sở dữ liệu trong PHP.Mỗi trình điều khiển cơ sở dữ liệu thực hiện giao diện PDO có thể hiển thị các tính năng dành riêng cho cơ sở dữ liệu dưới dạng các chức năng mở rộng thông thường.defines a lightweight, consistent interface for accessing databases in PHP. Each database driver that implements the PDO interface can expose database-specific features as regular extension functions.