Home > Backend Development > PHP Tutorial > PHP reads mssql's ntext field and returns an empty value_PHP tutorial

PHP reads mssql's ntext field and returns an empty value_PHP tutorial

WBOY
Release: 2016-07-13 17:06:30
Original
1017 people have browsed it

Today when I used PHP to connect to the mssql database, I found that the content of the ntext field could not be displayed. After querying, I found that the ntext field is not supported in PHP. The solution is that we only need to change the ntext field to text.

If there is no ntext field in the table, you can use the following code:

If there is an ntext field in the table and it is difficult to modify it back to the text field, you can do the following:
The code is as follows
 代码如下 复制代码


// Connect to MSSQL
$link = mssql_connect('KALLESPCSQLEXPRESS', 'sa', 'dsc');

if(!$link || !mssql_select_db('php', $link))
{
die('Unable to connect or select database!');
}

// Do a simple query, select the version of
// MSSQL and print it.
$version = mssql_query('SELECT @@VERSION');
$row = mssql_fetch_array($version);

echo $row[0];

// Clean up
mssql_free_result($version);
?>

Copy code

// Connect to MSSQL

$link = mssql_connect('KALLESPCSQLEXPRESS', 'sa', 'dsc');

if(!$link || !mssql_select_db('php', $link))

{

die('Unable to connect or select database!');
代码如下 复制代码

;mssql.textlimit = 4096
改为


mssql.textlimit = 2147483647
找到:


;mssql.textsize = 4096
改为


mssql.textsize = 2147483647

}


// Do a simple query, select the version of

// MSSQL and print it.

$version = mssql_query('SELECT @@VERSION');

$row = mssql_fetch_array($version);

echo $row[0];

// Clean up
代码如下 复制代码

select title,content from article
正确的:


select convert(varchar(255), title) as title,
convert(text, content) as content
from article

mssql_free_result($version);

?>

 代码如下 复制代码
include("adodb/adodb.inc.php"); //包含adodb类库文件
$conn=NewADOConnection('odbc_mssql'); //连接SQL Server数据库
$conn->Connect("Driver={SQL Server};Server=localhost;
 Database=mydb;",'username','password');
?>
1. Modify php.ini

Open php.ini

The code is as follows Copy code
;mssql.textlimit = 4096 Change to mssql.textlimit = 2147483647 Found:
;mssql.textsize = 4096
Change to mssql.textsize = 2147483647 2. You can use modified fields, because in SQL Server, ntext and nvarchar fields use unicode encoding to store content, Therefore, when PHP reads fields with ntext and nvarchar types through mssql extension, an error will occur. If the title field type is nvarchar and the content field type is ntext, then the following SQL statement will report an error: Wrong:
The code is as follows Copy code
select title,content from article Correct: select convert(varchar(255), title) as title, convert(text, content) as content from article 3. If you are a virtual host, you can use the adodb component to read. If your host does not support it, there is nothing I can do at the moment.
The code is as follows Copy code
include("adodb/adodb.inc.php"); //Include adodb class library file <🎜> $conn=NewADOConnection('odbc_mssql'); //Connect to SQL Server database <🎜> $conn->Connect("Driver={SQL Server};Server=localhost; Database=mydb;",'username','password'); ?> http://www.bkjia.com/PHPjc/630702.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/630702.htmlTechArticleToday when I used php to connect to the mssql database, I found that the content of the ntext field could not be displayed. After querying, I found that the ntext field was in php. Not supported, the solution is to change the ntext field to te...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template