php mssql select*不工作
我发现了错误php mssql select*不工作,php,sql-server-2008,Php,Sql Server 2008,我发现了错误 No data! (sqlJadual) 从这个查询 mssql_query("SELECT * from tblstatusjadual where idjadual like '1%' and tahun='2011' order by idjadual") or die('No data! (sqlJadual)'); 但是,当我把它改成 mssql
No data! (sqlJadual)
从这个查询
mssql_query("SELECT *
from tblstatusjadual
where idjadual like '1%' and
tahun='2011'
order by idjadual") or die('No data! (sqlJadual)');
但是,当我把它改成
mssql_query("SELECT idjadual,status
from tblstatusjadual
where idjadual like '1%' and
tahun='2011'
order by idjadual") or die('No data! (sqlJadual)');
它很好用
如果我只从2个字段中选择,这是可以的,但是当我想要选择超过15个字段时,查询就会变得冗长和混乱
我的问题是mssql在查询中不支持select*
任何帮助都将不胜感激 这取决于列的数量及其类型。可能是(例如)其中一种列类型是BLOB,而驱动程序正在确保行数据结构中有2GB可用来容纳它(我以前在一些写得不好的JDBC驱动程序中见过这种情况) 检查这一点的最佳方法是逐步将其他列(除了
计划
和年份
)添加到第二个查询中,直到查询失败。这可能会告诉你错误的专栏,如果有的话
另外,将die
语句更改为如下内容:
die(mssql_get_last_message())
因此,您有希望看到失败消息是什么
根据你对此的回应:
只能使用Unicode排序规则或ntext数据中的Unicode数据不能发送到使用DB Library(如ISQL)或ODBC版本3.7或更早版本的客户端
看起来您的数据库和用于访问它的库之间的功能不匹配
由于Unicode被普遍认为是一件好事,我想说的是,坚持下去,看看是否有更高版本的MSSQL(或底层ODBC驱动程序)可以处理它
还有一些建议可以解决您的问题:
当您收到此错误消息时: “仅Unicode排序规则或ntext数据中的Unicode数据不能 可以使用DB库(如ISQL)或ODBC发送到客户端 版本3.7或更早。” 在/etc/freetds/freetds.conf中添加这两行(最后两行): 您也可以在php.ini中编辑“charset”(但如果您以前在freetds.conf中编辑过,则不需要):
我在这里提到我的评论是为了回答这个问题,因为这对你很有帮助,下次有人访问/面临类似情况时,他/她可能会引用这个(而不是浏览上述评论系列的整个字符串) 如果您针对
MSSQL
表发出SELECT*
,并且您的表包含带有空白字符串的TEXT
列,则您可以
1) 将该列的数据类型更改为varchar
2) 将列的值从空白字符串重置为
NULL
要使工作,请选择*
(另一方面,我建议您不要使用
SELECT*
,而是只在查询中包含真正需要的列。)您的表中是否有Text
字段?当我试图在包含文本
列和空字符串的表上选择*
时,出现了这个问题。我修复了将该列的数据类型更改为varchar的问题。我的列中有一个空字符串作为值,这就是为什么SELECT*
失败的原因…进入MYSQL数据库,尝试将sql查询直接粘贴到上面的查询搜索中。如果有结果,那么mssql_查询函数有问题。从视觉上看,您的查询是正确的。选择*获取所有行。@BrandenStilgarSueper:我想你指的是MSSQL而不是MYSQL:-),选择*获取所有列,而不是行。使用die(MSSQL\u get\u last\u message())
进行更好的调试。@verility:当我使用die(MSSQL\u get\u last\u message()时)这是一个错误Unicode-only排序规则中的Unicode数据或无法使用DB-Library(如ISQL)或ODBC版本3.7或更早版本将ntext数据发送到客户端。
我将尝试此方法,并返回结果。
[global]
;tds version = 4.2
tds version = 8.0
client charset = UTF-8
; Specify client character set..
; If empty or not set the client charset from freetds.comf is used
; This is only used when compiled with FreeTDS
mssql.charset = "UTF-8"