Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中数组push()的等效sqlsrv,XAMPP,SQL SERVER 2012_Php_Sql Server_Xampp_Sqlsrv - Fatal编程技术网

PHP中数组push()的等效sqlsrv,XAMPP,SQL SERVER 2012

PHP中数组push()的等效sqlsrv,XAMPP,SQL SERVER 2012,php,sql-server,xampp,sqlsrv,Php,Sql Server,Xampp,Sqlsrv,sqlsrv\uu中的array\u push()是否有等效代码?类似于sqlsrv\u array\u push()。我不确定它是否有,我还没有读过关于该代码的文档。有没有其他办法 我试着重新编码,这就是我目前得到的 编辑:添加了conn.php <?php $serverName = "XXXXXX\XXXXXX"; $connectionInfo = array( "Database"=>"XXXXXX", "UID"=>"XXXXXX", "PWD"=>"XXXX

sqlsrv\uu
中的
array\u push()
是否有等效代码?类似于
sqlsrv\u array\u push()
。我不确定它是否有,我还没有读过关于该代码的文档。有没有其他办法

我试着重新编码,这就是我目前得到的

编辑:添加了conn.php

<?php
$serverName = "XXXXXX\XXXXXX";
$connectionInfo = array( "Database"=>"XXXXXX", "UID"=>"XXXXXX", "PWD"=>"XXXXXX");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?> 
这就是我得到的错误

警告:sqlsrv_num_rows()希望参数1是资源,布尔值在第198行的C:\xampp\htdocs\path\tofile\home.php中给出


解释:

如果我理解您的逻辑,您需要替换
$conn->query($sql)带呼叫。函数是SQL Server PHP驱动程序的一部分,不是面向对象的

示例:

下一个示例基于您的代码,可能有助于获得预期结果:

<?php
$and = 'AND YEAR(CHECKTIME) = '.$year;
$months = array();
$ontime = array();
$late = array();
for( $m = 1; $m <= 12; $m++ ) {
    $sql = "SELECT * FROM CHECKINOUT WHERE MONTH(CHECKTIME) = '$m' AND CHECKTYPE = 'I' $and";
    $oquery = sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET));
    if ($oquery === false) {
        echo "Error (sqlsrv_query): ".print_r(sqlsrv_errors(), true);
        exit;
    }   
    array_push($ontime, sqlsrv_num_rows($oquery));


    $sql = "SELECT * FROM CHECKINOUT WHERE MONTH(CHECKTIME) = '$m' AND CHECKTYPE = 'O' $and";
    $lquery = sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET));
    if ($lquery === false) {
        echo "Error (sqlsrv_query): ".print_r(sqlsrv_errors(), true);
        exit;
    }   
    array_push($late, sqlsrv_num_rows($lquery));

    $num = str_pad( $m, 2, 0, STR_PAD_LEFT );
    $month =  date('M', mktime(0, 0, 0, $m, 1));
    array_push($months, $month);
?>

什么是
$conn
$and
?您的查询失败,因此查询中可能存在语法错误。启用错误报告并找出错误所在。不,SQL Server的PHP驱动程序没有这样的功能。你能解释一下为什么需要这样一个函数吗?可能还有另一种方法来实现您的结果。@Qirel
$and='和YEAR(date)='.$YEAR附录。@Zhorov我正在尝试为
数组推送($ontime,sqlsrv_num_rows($oquery))的所有可用数据创建一行,我使用数据制作图表。使用
sqlsrv\u errors()
找出查询失败的原因。显然,查询失败,因为
$Xquery
是一个布尔值。但是我不知道有一个面向对象的接口用于
sqlsrv\uu
。这更好,谢谢。我现在只需要设置
$year在<代码>中$y=2019因为它是一个下拉选项。@pjustindaryll很乐意帮忙!我为未来的读者添加了
sqlsrv
标记。谢谢
<?php
$and = 'AND YEAR(CHECKTIME) = '.$year;
$months = array();
$ontime = array();
$late = array();
for( $m = 1; $m <= 12; $m++ ) {
    $sql = "SELECT * FROM CHECKINOUT WHERE MONTH(CHECKTIME) = '$m' AND CHECKTYPE = 'I' $and";
    $oquery = sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET));
    if ($oquery === false) {
        echo "Error (sqlsrv_query): ".print_r(sqlsrv_errors(), true);
        exit;
    }   
    array_push($ontime, sqlsrv_num_rows($oquery));


    $sql = "SELECT * FROM CHECKINOUT WHERE MONTH(CHECKTIME) = '$m' AND CHECKTYPE = 'O' $and";
    $lquery = sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET));
    if ($lquery === false) {
        echo "Error (sqlsrv_query): ".print_r(sqlsrv_errors(), true);
        exit;
    }   
    array_push($late, sqlsrv_num_rows($lquery));

    $num = str_pad( $m, 2, 0, STR_PAD_LEFT );
    $month =  date('M', mktime(0, 0, 0, $m, 1));
    array_push($months, $month);
?>
<?php
$y = 2019;
$months = array();
$ontime = array();
$late = array();
for( $m = 1; $m <= 12; $m++ ) {
    $sql = "SELECT * FROM CHECKINOUT WHERE YEAR(CHECKTIME) = ? AND MONTH(CHECKTIME) = ? AND CHECKTYPE = 'I'";
    $oquery = sqlsrv_query($conn, $sql, array(&$y, &$m), array("Scrollable" => SQLSRV_CURSOR_KEYSET));
    if ($oquery === false) {
        echo "Error (sqlsrv_query): ".print_r(sqlsrv_errors(), true);
        exit;
    }   
    array_push($ontime, sqlsrv_num_rows($oquery));

    $sql = "SELECT * FROM CHECKINOUT WHERE YEAR(CHECKTIME) = ? AND MONTH(CHECKTIME) = ? AND CHECKTYPE = 'O'";
    $lquery = sqlsrv_query($conn, $sql, array(&$y, &$m), array("Scrollable" => SQLSRV_CURSOR_KEYSET));
    if ($lquery === false) {
        echo "Error (sqlsrv_query): ".print_r(sqlsrv_errors(), true);
        exit;
    }   
    array_push($late, sqlsrv_num_rows($lquery));

    $num = str_pad( $m, 2, 0, STR_PAD_LEFT );
    $month =  date('M', mktime(0, 0, 0, $m, 1));
    array_push($months, $month);
}
?>