您好,欢迎访问一九零五行业门户网

php mssql查询的一个问题(请教)

php ms sql select
//获得整列的所有值,转为一个2维数组。
function getall($sql) {
    $query=mssql_query($sql);
    if($query) {
        $temp=array();
        while($res=mssql_fetch_assoc($query)) {
            $temp[]=$res;
        }
        return $temp;
    }
    else{
    return false;
    }
}
$result =select zdmc from qx where jsid=9 and tcmc='$ditcbo' and kj=1;
$arr=getall($result);
//把二维数组转为一个用单引加逗号隔开的字符串
for($i=0;$i $array[] = $arr[$i][zdmc];
}
$r='.implode(',', $array ).';
//用这个字符串在表中进行查询
$result2 = mssql_query(select $r from $sjb where id='$bh');
$row = mssql_fetch_array($result2);
print_r($row)
显示的结果为
乱码是因为这个是读的是mmsql的gbk编码,用到的时候我会进行转换,但是现在里面读到的内容都是不正确的
新手写弄的,求兄弟帮忙啊
回复讨论(解决方案) $r = '[' . implode(],[, $array ) . ']';
既然 $r 中是字段列表,那么用单引号括起不就成了字符串了?
看截图,你的字段名大多是中文的。这样就需要经字段名用 [] 括起,你在sql server管理器中就可看到
你的意思是要用中括号把字段名括起来用逗号分开吗?
我复制了你给的这句报错了
报错你就给出错误信息
function getall($sql) {
    $query=mssql_query($sql);
    if($query) {
        $temp=array();
        while($res=mssql_fetch_assoc($query)) {
            $temp[]=$res;
        }
        return $temp;
    }
    else{
    return false;
    }
}
$result =select zdmc from qx where jsid=9 and tcmc='$ditcbo' and kj=1;
$arr=getall($result);
for($i=0;$i $array[] = $arr[$i][zdmc];
}
$r = '[' . implode(],[, $array ) . ']';
//$r='.implode(,, $array ).';
$result2 = mssql_query(select  from $sjb where id='$bh');
$row = mssql_fetch_array($result2);
print_r($row)
不好意思咯,再帮忙看看
你这乱七八糟的贴图,谁能看清楚?
$r = '[' . implode(],[, $array ) . ']';
echo convert2utf8($r);
echo gettype($r);
把$r utf8显示成中文结果是这样
然后就,用原本的gbk编码,表都是测试过能正常读取的,不知道问题出在哪啊!
$r = '[' . implode(],[, $array ) . ']';
$result2 = mssql_query(select $r from $sjb where id='$bh');
$row = mssql_fetch_array($result2);
print_r($row)
第一张截图中的 string 是哪里来的?
和中文 mssq 打交道还是用 gbk 编码比较好
echo了一下gettype($r);
如果这样行不同,那只好再想想别的方法
其它类似信息

推荐信息