Hướng dẫn setattribute php

Chuyển đến nội dung chính

Nội dung chính

  • PDOStatement::setAttribute
  • Trong bài viết này
  • Return Value
  • Phản hồi
  • 1, Lớp -class.
  • 3, Phương thức.
  • 4, Khởi tạo lớp.
  • 5, Truy xuất thuộc tính của class.
  • Truy xuất trong class
  • Truy xuất ngoài class
  • 6, Truy xuất phương thức của class.
  • Truy xuất trong class.
  • Truy xuất ngoài class.
  • 7, Lời kết.

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

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

PDOStatement::setAttribute

  • Bài viết
  • 09/09/2022
  • 2 phút để đọc

Trong bài viết này

Hướng dẫn setattribute php

Download PHP driver

Sets an attribute value, either a predefined PDO attribute or a custom driver attribute.

Syntax

bool PDOStatement::setAttribute ($attribute, $value );  

Parameters

$attribute: An integer, one of the PDO::ATTR_* or PDO::SQLSRV_ATTR_* constants. See the Remarks section for the list of available attributes.

$value: The (mixed) value to be set for the specified $attribute.

Return Value

TRUE on success, FALSE otherwise.

Remarks

The following table contains the list of available attributes:

AttributeValuesDescription
PDO::SQLSRV_ATTR_CLIENT_BUFFER_MAX_KB_SIZE 1 to the PHP memory limit. Configures the size of the buffer that holds the result set for a client-side cursor.

The default is 10,240 KB (10 MB).

For more information about client-side cursors, see Cursor Types (PDO_SQLSRV Driver).

PDO::SQLSRV_ATTR_DATA_CLASSIFICATION true or false Specifies whether to retrieve data classification metadata when calling PDOStatement::getColumnMeta. The default is false.
PDO::SQLSRV_ATTR_DECIMAL_PLACES Integer between 0 and 4 (inclusive) Specifies the number of decimal places when formatting fetched money values.

Any negative integer or value more than 4 will be ignored.

This option works only when PDO::SQLSRV_ATTR_FORMAT_DECIMALS is true.

This option may also be set at the connection level. If so, then this option overrides the connection level option.

For more information, see Formatting Decimal Strings and Money Values (PDO_SQLSRV Driver).

PDO::SQLSRV_ATTR_ENCODING Integer

PDO::SQLSRV_ENCODING_UTF8 (Default)

PDO::SQLSRV_ENCODING_SYSTEM

PDO::SQLSRV_ENCODING_BINARY

Sets the character set encoding to be used by the driver to communicate with the server.
PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE true or false Specifies whether to retrieve date and time types as PHP DateTime objects. If left false, the default behavior is to return them as strings.

This option may also be set at the connection level. If so, then this option overrides the connection level option.

For more information, see How to: Retrieve Date and Time Types as PHP DateTime Objects Using the PDO_SQLSRV Driver.

PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE true or false Handles numeric fetches from columns with numeric SQL types (bit, integer, smallint, tinyint, float, or real).

When connection option flag ATTR_STRINGIFY_FETCHES is on, the return value is a string even when SQLSRV_ATTR_FETCHES_NUMERIC_TYPE is on.

When the returned PDO type in bind column is PDO_PARAM_INT, the return value from an integer column is an int even if SQLSRV_ATTR_FETCHES_NUMERIC_TYPE is off.

PDO::SQLSRV_ATTR_FORMAT_DECIMALS true or false Specifies whether to add leading zeroes to decimal strings when appropriate. If set, this option enables the PDO::SQLSRV_ATTR_DECIMAL_PLACES option for formatting money types. If left false, the default behavior of returning exact precision and omitting leading zeroes for values less than 1 is used.

This option may also be set at the connection level. If so, then this option overrides the connection level option.

For more information, see Formatting Decimal Strings and Money Values (PDO_SQLSRV Driver).

PDO::SQLSRV_ATTR_QUERY_TIMEOUT Integer Sets the query timeout in seconds.

By default, the driver will wait indefinitely for results. Negative numbers are not allowed.

0 means no timeout.

Example

false )  );  
  
$stmt = $conn->prepare('SELECT * FROM Person.ContactType');  
  
echo $stmt->getAttribute( constant( "PDO::ATTR_CURSOR" ) );  
  
echo "\n";  
  
$stmt->setAttribute(PDO::SQLSRV_ATTR_QUERY_TIMEOUT, 2);  
echo $stmt->getAttribute( constant( "PDO::SQLSRV_ATTR_QUERY_TIMEOUT" ) );  
?>  

See Also

PDOStatement Class

PDO

Phản hồi

Gửi và xem ý kiến phản hồi dành cho

Mỗi một đối tượng thì sẽ có một hoặc nhiều class, và ở trong class thì sẽ có một hoặc nhiều các thuộc tính, phương thức.Và bài hôm nay chúng ta sẽ đi vào tìm hiểu lớp, thuộc tính, phương thức trong PHP.

Nội dung chính

  • 1, Lớp -class.
  • 3, Phương thức.
  • 4, Khởi tạo lớp.
  • 5, Truy xuất thuộc tính của class.
  • Truy xuất trong class
  • Truy xuất ngoài class
  • 6, Truy xuất phương thức của class.
  • Truy xuất trong class.
  • Truy xuất ngoài class.
  • 7, Lời kết.

Nội dung chính

  • 1, Lớp -class.
  • 3, Phương thức.
  • 4, Khởi tạo lớp.
  • 5, Truy xuất thuộc tính của class.
  • Truy xuất trong class
  • Truy xuất ngoài class
  • 6, Truy xuất phương thức của class.
  • Truy xuất trong class.
  • Truy xuất ngoài class.
  • 7, Lời kết.

Nội dung chính

  • 1, Lớp -class.
  • 3, Phương thức.
  • 4, Khởi tạo lớp.
  • 5, Truy xuất thuộc tính của class.
  • Truy xuất trong class
  • Truy xuất ngoài class
  • 6, Truy xuất phương thức của class.
  • Truy xuất trong class.
  • Truy xuất ngoài class.
  • 7, Lời kết.

Nội dung chính

  • 1, Lớp -class.
  • 3, Phương thức.
  • 4, Khởi tạo lớp.
  • 5, Truy xuất thuộc tính của class.
  • Truy xuất trong class
  • Truy xuất ngoài class
  • 6, Truy xuất phương thức của class.
  • Truy xuất trong class.
  • Truy xuất ngoài class.
  • 7, Lời kết.

1, Lớp -class.

-Lớp(class) dùng để mô tả một phần hoặc toàn phần của một đối tượng(nhưng không phải đối tượng). Và để khai báo nó trong PHP thì chúng ta sử dụng cú pháp sau:

class Name
{
    //code
}

Trong đó: Name là tên của class. Nó có các rằng buộc về tên giống như đặt tên hàm trong hướng thủ tục.

VD: Mình sẽ khai báo lớp Person đại diện cho đối tượng con người chúng ta.

class Person
{
    //code
}

-Thuộc tính (properties) trong class có tác dụng như các biến và hằng trong phương pháp lập trình hướng thủ tục.Ví dụ như lớp con người sẽ có các thuộc tính như mắt, mũi, chân, tay,... Và để khai báo thuộc tính trong class chúng ta sử dụng cú pháp:

-Trong đó:

  • Để khai báo thuộc tính động(biến) thì chúng ta sử dụng từ khóa var, và chúng ta cũng có thể thiết lập giá trị luôn cho biến bằng phép gán. ví dụ: $name= 'Vu Thanh Tài';
  • Để khai báo thuộc tính cố định thì chúng ta sử dụng từ khóa const, với thuộc tính này thì chúng ta không thể thay đổi giá trị của nó (giống hằng).
  • Tên của thuộc tính cũng được bao gồm các ràng buộc giống như đặt tên biến và hằng (xem thêm)

VD: Mình sẽ khai báo lớp ConNguoi có các thuộc tính động là mat,mui và có thuộc tính cố tịnh là sochan=2.

class ConNguoi
{
    var $name;
    var $mat;
    var $mui;
    const sochan = 2;
}

3, Phương thức.

-Phương thức trong trong class là các hành động hành vi của class đó. Và nó khá giống với hàm ở trong phương pháp lập trình hướng thủ tục. Cú pháp khai báo như sau:

class Name
{
    function methodName()
    {
        //code  
    }
}

Trong đó: methodName là tên của phương thức trong class, và nó cũng có ràng buộc như tên đặt tên hàm(xem thêm).

VD: đối với class ConNguoi ở trên thì sẽ bổ sung thêm các phương thức như: đi, ăn, chạy, nói,...

class ConNguoi
{
    var $name;
    var $mat;
    var $mui;
    const sochan = 2;

    function an()
    {
        //code
    }

    function noi()
    {
        //code
    }

    function di()
    {
        //code
    }
}

- Và đương nhiên đã giống như hàm thì các bạn cũng có thể truyền các argument vào hàm được.

VD:

function noi($caunoi)
{
    //code
}

4, Khởi tạo lớp.

-Để khởi tạo một class trong PHP thì chúng ta sẽ có 2 cách nhưng ở bài này mình sẽ trình bài một cách thôi. Để khởi tạo class trong PHP chúng ta sử dụng cú pháp:

new className;
//hoặc
new ClassName();

Trong đó: className là tên của class các bạn cần khởi tạo (khuyến khích dùng cách 2). 

-Và bạn cũng hàn toàn có thể gán nó vào một biến với kiểu dữ liệu là object bằng phép gán.

$variable = new className();

VD: Mình sẽ khởi tạo class ConNguoi ở trên.

$Tai = new ConNguoi();

5, Truy xuất thuộc tính của class.

-Để truy xuất thuộc tính của một class chúng ta sẽ  chia làm 2 dạng là truy xuất trong class và truy xuất ngoài class.

Truy xuất trong class

-Để truy xuất các thuộc tính động trong class thì chúng ta dùng từ khóa this với cú pháp: $this->propertyName;

VD: Truy xuất thông tin của thuộc tính name trong phương thức noi của class ConNguoi.

class ConNguoi
{
    var $name;
    var $mat;
    var $mui;
    const sochan = 2;

    function an()
    {
        //code
    }

    function noi($caunoi)
    {
        return $this->name = $caunoi;
    }

    function di()
    {
        //code
    }
}

-Còn nếu muốn truy xuất thông tin của thuộc tính cố định trong class chúng ta sẽ sử dụng một trong 2 cú pháp sau:

self::propertyName;
//hoặc
className::propertyName;
//Mình khuyên dùng cách 1

VD: Mình sẽ  xây dựng thêm phương thức getSoChan có nhiệm vụ trả về soChan bên của lớp ConNguoi.

function getSoChan()
{
    return self::sochan;
}

Truy xuất ngoài class

-Để truy xuất thuộc tính khi đứng bên ngoài class thì chúng ta cũng chia làm 2 loại:

+ Đối với thuộc tính động chúng ta sẽ sử dụng từ cú pháp như sau:

$newClass = new className();
$newClass->propertyName;
//Mình khuyên dùng cách 2 vì viết nó sẽ tường minh, dễ đọc hơn.

+ Đối với thuộc tính cố định(constant) chúng ta sẽ sử dụng cú pháp sau:

className::propertyName;

VD: Mình sẽ gọi các thuộc tính động và cố định trong lớp ConNguoi.

//khởi tạo lớp
$tai = new ConNguoi();
//gọi thuộc tính động
//gọi name
$tai->name;
//gọi mui
$tai->mui
//gọi thuộc tính cố định constant
ConNguoi::sochan;

6, Truy xuất phương thức của class.

-Đối với class thì mình cũng chia làm 2 dạng con là truy xuất trong và truy xuất ngoài class.

Truy xuất trong class.

-Để truy xuất các phương thức của class khi mà chúng ta vẫn đang ở trong class thì chúng ta sử dụng cú pháp sau:

$this->methodName();
//hoặc nếu có các argument
$this->methodName(argument);

VD:

class ConNguoi
{
    var $name = 'aa';
    var $mat;
    var $mui;
    const sochan = 2;

    function an()
    {
        //code
    }

    function noi()
    {
        return $this->getSoChan();
    }

    function di()
    {
        //code
    }

    function getSoChan()
    {
        return self::sochan;
    }
}

Truy xuất ngoài class.

-Đối với gọi phương thức khi đang ở bên ngoài class thì các bạn chỉ cần sử dụng cú pháp sau:

$newClass = new className();
$newClass->methodName;

VD:

$connguoi = new ConNguoi();
$connguoi->noi();

7, Lời kết.

-Như vậy trong phần này mình đã giới thiệu với các bạn cơ bản về lớp, thuộc tính, phương thức trong PHP hướng đối tượng rồi, và mình xin được tổng hợp lại đoạn code của bài này như sau:

class ConNguoi
{
    //khai báo thuộc tính động
    public $name;
    public $mat;
    public $mui;
    //khai báo constant
    const SOCHAN = 2;

    //khai báo phương thức
    public function an()
    {
        //code
    }

    public function noi($caunoi)
    {
        //gọi phương thức trong class
        return $this->getSoChan();
    }

    public function di()
    {
        //code
    }

    public function getName()
    {
        //gọi thuộc tính động trong class
        return $this->name;
    }

    public function getSoChan()
    {
        //gọi thuộc tính constant trong class
        return self::SOCHAN;
    }
}

//khởi tạo class
$connguoi = new ConNguoi();
//gọi thuộc tính ngoài class và đồng thười gán giá trị mới cho thuộc tính
$connguoi->name = 'Vũ Thanh Tài';
//gọi lại thuộc tính để xem thay đổi
echo $connguoi->name;
//gọi phương thức
echo $connguoi->noi('Vũ Thanh Tài');

Chúc các bạn học tốt!