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);
}
?>