Heim >Backend-Entwicklung >PHP-Tutorial >php mssql查询的一个问题(请教)

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

WBOY
WBOYOriginal
2016-06-23 14:16:04783Durchsuche

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);
如果这样行不同,那只好再想想别的方法

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn