【问题标题】:Storing SQL Server array in PHP在 PHP 中存储 SQL Server 数组
【发布时间】:2014-01-05 23:52:34
【问题描述】:

我正在尝试在此 SQL Server 数据库上运行 SELECT 语句(并将行作为变量存储在关联数组中,以便我可以插入到 mysql 数据库中),并得到一些我没有的错误理解。

首先

关键字“SELECT”附近的语法不正确。

查询:

SELECT 
    id, accountType, displayName, uid, parentOrg
FROM 
    censored.datatable

我只使用过 MySQL,所以我看不出上面的选择有什么问题。

第二个问题...上面的 select 语句作为 $query 传递给下面的这个函数。

function query($query){
    $data = mssql_init($query, $this->getCon());
    $var = array('id','accountType','displayName','uid','parentOrganization_id');
    $row = array();
    do {
        mssql_execute($data);
        //$data->mssql_bind($row['id'], $row['accountType'], $row['displayName'], $row['uid'],
       // $row['parentOrganization_id']);
        mssql_bind($data ,'@id', $var['id'], SQLFLT8, false, 10);
        mssql_bind($data ,'@accountType', $var['accountType'], SQLVARCHAR, false, 10);
        mssql_bind($data ,'@displayName', $var['displayName'], SQLVARCHAR, false, 10);
        mssql_bind($data ,'@uid', $var['uid'], SQLFLT8, false, 10);
        mssql_bind($data ,'@parentOrganization_id', $var['parentOrganization_id'], SQLFLT8, false, 10);
        while ($row = mssql_fetch_object($data)){
            array_push($row, [$row['id'], $row['accountType'], $row['displayName'], $row['uid'],
                $row['parentOrganization_id']]);
        }
    }while ( mssql_next_result($data) );
    return $row;
}

这应该是将结果集的每一行存储到关联数组中。这是此查询函数返回的所有错误

警告:mssql_execute():存储过程在 C:\Users\jmurdock\Report\HQDevBox.php 第 51 行执行失败[mssql_execute()]
警告:mssql_bind():无法在第 58 行的 C:\Users\jmurdock\Report\HQDevBox.php 中设置参数[mssql_bind,所有 mssql_binds 都出现错误...第 54-58 行]
警告:mssql_fetch_object():在第 59 行的 C:\Users\jmurdock\Report\HQDevBox.php 中,提供的资源不是有效的 MS SQL 结果资源
警告:mssql_next_result():提供的资源不是 C:\Users\jmurdock\Report\HQDevBox.php 第 63 行 [mssql_next_result]

中的有效 MS SQL 结果资源

我觉得 for 循环会更好。任何帮助将不胜感激。连接是有效的,我有 95% 的把握。

【问题讨论】:

    标签: php sql sql-server arrays associative-array


    【解决方案1】:
    1. 很确定你应该让mssql_bind() 调用之前 mssql_execute()
    2. mssql_bind() 的第 6 个参数是布尔值,第 7 个参数是整数。 Ref
    3. $var 不是关联数组,但您指的是它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多