その理由は次のとおりです: PHP による mssql の ntext 型のサポート;
今日ずっと作業してたんですが、データベースには当然接続できるんですが、データが読めません。 Google や Baidu で検索した結果、mssql を読み込むときに PHP によって返される ntext フィールドが空であることがわかりました。ntext フィールドを text に変更することをお勧めします。
テーブルに ntext フィールドがない場合は、次のコードを使用できます:
// Connect to MSSQL $link = mssql_connect('KALLESPCSQLEXPRESS', 'sa', 'phpfi'); 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); ?> |
テーブルに ntext フィールドがあり、それをテキスト フィールドに戻すことが難しい場合は、次の操作を行うことができます:
1. php.ini を変更します
php.ini を開きます
見つかりました:
;mssql.textlimit = 4096 |
が
に変更されました
mssql.textlimit = 2147483647 |
見つかりました:
;mssql.textsize = 4096 |
が
に変更されました
mssql.textsize = 2147483647 |
2. 変更されたフィールド を使用できます。 SQL サーバーの ntext フィールドと nvarchar フィールドはコンテンツの保存に Unicode エンコーディングを使用するため、PHP では、間違った mssql 拡張子を介して ntext 型と nvarchar 型のフィールドを読み取ると問題が発生します。
タイトル フィールドのタイプが nvarchar で、コンテンツ フィールドのタイプが ntext の場合、次の SQL ステートメントはエラーを報告します:
間違い:
select title,content from article |
正解:
select convert(varchar(255),title) as title, convert(text,content) as content from article |
include("adodb/adodb.inc.php"); //包含adodb类库文件 $conn=NewADOConnection('odbc_mssql'); //连接SQL Server数据库 $conn->Connect("Driver={SQL Server};Server=localhost;Database=mydb;",'username','password'); ?> |
$conn->Connect("Driver={SQL Server};Server=localhost;Database=mydb;",'username','パスワード ');
?>
テーブル>