php-从查询结果集回声



新的php;来自ColdFusion的背景。我正在设置一个PHP 7测试页面,其中连接到SQL Server DB,执行选择查询,然后回声查询会导致循环。一切都很好,除了如果我尝试呼应" dateTime"类型或键入" date"的列,我什么也没得到。这些是否需要某种日期格式函数,然后才能回声?

此外,对于其他具有ColdFusion背景的任何人,我注意到与CF相比,PHP在执行和输出查询方面有些麻烦。有什么技巧使其更容易吗?任何PHP框架特别有用吗?

<?php
// First attempt at SQL query. Note that MSSQL_CONNECT is removed in PHP 7; need to use sqlsrv_connect
$serverName = "localhost";
$connectionInfo = array( "Database"=>"somedb", "UID"=>"someid", "PWD"=>"somepassword");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$sql = "SELECT top 10 * from tQandCDownloads order by downloadId desc";
if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
echo "<br><br>";
$qry = sqlsrv_query($conn, $sql);
if ($qry === false) {
    die( print_r( sqlsrv_errors(), true));
}
while( $row = sqlsrv_fetch_array( $qry, SQLSRV_FETCH_ASSOC) ) {
    echo $row['downloadId'].", ".$row['fileName'].", ".$row['fileType'].", ".$row['downloadDate']."<br />";
}
//Remove downloadDate from above and results echo out as expected. But leave it in, and nothing echoes out to screen. Datatype is "datetime". Same thing happens with another column of type "date".
sqlsrv_free_stmt( $qry);
?>

好吧,是的,看起来像DateTime对象的"日期"属性并不是要直接访问。相反,需要调用正确的方法获取和显示日期,这看起来像是"格式(("方法。将我的时循环更改为下面,现在一切都在回荡:

while( $row = sqlsrv_fetch_array( $qry, SQLSRV_FETCH_ASSOC) ) {
    echo $row['downloadId'].", ".$row['fileName'].", ".$row['downloadDate']->format('Y-m-d').", ".$row['fileType'].", ".$row['forDate']->format('Y-m-d')."<br />";
}

顺便说一句,使用dbug.php是我发现这两个列的查询列值是对象的。模仿CFDUMP,这是我最喜欢的ColdFusion标签之一。https://github.com/ospinto/dbug。我在查询中"倾倒"每行:

include_once("dBug.php");
while( $row = sqlsrv_fetch_array( $qry, SQLSRV_FETCH_ASSOC) ) {
    new dBug($row);
}

最新更新