【问题标题】:Sql server : xml truncated while querying in phpSql 服务器:在 php 中查询时 xml 被截断
【发布时间】:2013-09-18 12:43:27
【问题描述】:

从 SQL Server 数据库中查询 xml 数据时,它返回一个截断的 xml。

$db = DB::get();

$db->exec('SET ANSI_NULLS ON');
$db->exec('SET ANSI_PADDING ON');
$db->exec('SET ANSI_WARNINGS ON');
$db->exec('SET ARITHABORT ON');
$db->exec('SET CONCAT_NULL_YIELDS_NULL ON');
$db->exec('SET NUMERIC_ROUNDABORT OFF');
$db->exec('SET QUOTED_IDENTIFIER ON');

$query = "select CAST(db.function(199) AS nvarchar(max))";
$result = $db->query($query);
$xml = $result->fetchColumn();

如果$xml的长度太大,会被截断。有没有办法获取完整的 xml,无论其大小是多少?

【问题讨论】:

    标签: php sql-server xml truncated


    【解决方案1】:

    最后我在查询中添加了这些行before

    $query = "select LEN(CAST(dbo.f_XML_Facture($IDFacture) AS nvarchar(max)))";
    if ($result = $db->query($query)) {
        if (($length = $result->fetchColumn()) !== false) {
            $txt = "SET TEXTSIZE " . ($length*2);
            $db->exec($txt);
        }
    }
    

    SET TEXTSIZE (number) 允许我们定义我们想要检索的 xml 的长度。

    【讨论】:

    • 很可能$length*2 不是确定真实长度的正确方法,它可能有效,但您可能在这里继承了问题。只是说。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2011-05-27
    • 2012-01-03
    • 1970-01-01
    相关资源
    最近更新 更多