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:
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');
?>
|
| 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:
1. Modify php.ini
Open php.ini
Found:
The code is as follows
|
Copy code
;mssql.textlimit = 4096
Change to
mssql.textlimit = 2147483647
Found:
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...
|
|
|
|