【发布时间】: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()]
中的有效 MS SQL 结果资源
警告: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]
我觉得 for 循环会更好。任何帮助将不胜感激。连接是有效的,我有 95% 的把握。
【问题讨论】:
标签: php sql sql-server arrays associative-array