Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sürüm 5.6.0'da eklenen bu özellik yalnızca SQL Server için PHP için Microsoft Sürücüleri'nin PDO_SQLSRV sürücüsü kullanıldığında geçerlidir.
Tarih ve saat türlerini DateTime nesneleri olarak almak için
PDO_SQLSRV kullanılırken, tarih ve saat türleri (smalldatetime, datetime, date, time, datetime2 ve datetimeoffset) varsayılan olarak dize olarak döndürülür. Ne PDO::ATTR_STRINGIFY_FETCHES ne de PDO::SQLSRV_ATTR_FETCHES_NUMERIC_TYPE özniteliğinin hiçbir etkisi olmaz. Tarih ve saat türlerini PHP DateTime nesneleri olarak almak için bağlantı veya deyim özniteliğini PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPEtrue (varsayılan olarak false ) olarak ayarlayın.
Uyarı
Bu bağlantı veya deyim özniteliği yalnızca tarih ve saat türlerinin düzenli olarak alınması için geçerlidir çünkü DateTime nesneleri çıkış parametresi olarak belirtilemez.
Örnek - bağlantı özniteliğini kullanma
Aşağıdaki örneklerde netlik için hata denetimi atlanmıştır. Bu, bağlantı özniteliğinin nasıl ayarlandığını gösterir:
<?php
$server = 'myserver';
$databaseName = 'mydatabase';
$username = 'myusername';
$passwd = '<password>';
$tableName = 'mytable';
$conn = new PDO("sqlsrv:Server = $server; Database = $databaseName", $username, $passwd);
// To set the connection attribute
$conn->setAttribute(PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE, true);
$query = "SELECT DateTimeCol FROM $tableName";
$stmt = $conn->prepare($query);
$stmt->execute();
// Expect a DateTimeCol value as a PHP DateTime type
$row = $stmt->fetch(PDO::FETCH_ASSOC);
var_dump($row);
unset($stmt);
unset($conn);
?>
Örnek - deyimi özniteliğini kullanma
Bu örnekte deyimi özniteliğinin nasıl ayarlanacağı gösterilmektedir:
<?php
$database = "test";
$server = "(local)";
$conn = new PDO("sqlsrv:server = $server; Database = $database", "", "");
$query = "SELECT DateTimeCol FROM myTable";
$stmt = $conn->prepare($query);
$stmt->setAttribute(PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE, true);
$stmt->execute();
// Expect a DateTimeCol value as a PHP DateTime type
$row = $stmt->fetch(PDO::FETCH_NUM);
var_dump($row);
unset($stmt);
unset($conn);
?>
Örnek - deyimi seçeneğini kullanın
Alternatif olarak, deyimi özniteliği bir seçenek olarak ayarlanabilir:
<?php
$database = "test";
$server = "(local)";
$conn = new PDO("sqlsrv:server = $server; Database = $database", "", "");
$dateObj = null;
$query = "SELECT DateTimeCol FROM aTable";
$options = array(PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE => true);
$stmt = $conn->prepare($query, $options);
$stmt->execute();
$stmt->bindColumn(1, $dateObj, PDO::PARAM_LOB);
$row = $stmt->fetch(PDO::FETCH_BOUND);
var_dump($dateObj);
unset($stmt);
unset($conn);
?>
Örnek - datetime türlerini string olarak alma
Aşağıdaki örnekte bunun tam tersini nasıl gerçekleştirebileceğiniz gösterilmektedir (varsayılan olarak false olduğundan bu gerçekten gerekli değildir):
<?php
$database = "MyData";
$conn = new PDO("sqlsrv:server = (local); Database = $database");
$dateStr = null;
$query = 'SELECT DateTimeCol FROM table1';
$options = array(PDO::SQLSRV_ATTR_FETCHES_DATETIME_TYPE => false);
$stmt = $conn->prepare($query, $options);
$stmt->execute();
$stmt->bindColumn(1, $dateStr);
$row = $stmt->fetch(PDO::FETCH_BOUND);
echo $dateStr . PHP_EOL;
unset($stmt);
unset($conn);
?>
Ayrıca Bkz.
SQLSRV Sürücüsünü Kullanarak Tarih ve Saat Türlerini Dize Olarak Alma