「phpからFreeTDSにつなぐ」の編集履歴(バックアップ)一覧はこちら

phpからFreeTDSにつなぐ」(2017/05/27 (土) 21:51:06) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

コマンドライン版のPHPからunixODBCを使ってみよう。 メインの部分は以下 $conn = odbc_connect( "SQLServer", "uid", "pass"); #$sql = "select * from 社員コードテーブル ;"; $rs = odbc_exec($conn,$sql); if (odbc_error()) { echo odbc_errormsg($conn); exit(1) ; }//end of if 実行すると、なぜかデータを表示するけど、エラー~ セグメンテーション違反です なんだろう?ネットで探すと、ああ、ある。これだな。~ http://d.hatena.ne.jp/root8537/20140916/1410880230 phpのソースの中の以下のソースみたい。~ /ext/odbc/php_odbc.c #endif /* HAVE_ADABAS */    default: rc = SQLColAttributes(result->stmt, (SQLUSMALLINT)(i+1), SQL_COLUMN_DISPLAY_SIZE, NULL, 0, NULL, &displaysize); displaysize = displaysize <= result->longreadlen ? displaysize : result->longreadlen; /* Workaround for Oracle ODBC Driver bug (#50162) when fetching TIMESTAMP column */ if (result->values[i].coltype == SQL_TIMESTAMP) { displaysize += 3; } //result->values[i].value = (char *)emalloc(displaysize + 1);  //rc = SQLBindCol(result->stmt, (SQLUSMALLINT)(i+1), SQL_C_CHAR, result->values[i].value, // displaysize + 1, &result->values[i].vallen); //コメントアウトした部分を以下のように変更。displaysize + 1をdisplaysize + 4に変更。 result->values[i].value = (char *)emalloc(displaysize + 4); rc = SQLBindCol(result->stmt, (SQLUSMALLINT)(i+1), SQL_C_CHAR, result->values[i].value, displaysize + 4, &result->values[i].vallen); break; } } return 1;  } phpを再コンパイルして、maki install でapacheを再起動。~ もう一度実行してみる。~ エラーはでなくなりました。 これで心配なく使えます。
コマンドライン版のPHPからunixODBCを使ってみよう。 メインの部分は以下 $conn = odbc_connect( "SQLServer", "uid", "pass"); #$sql = "select * from 社員コードテーブル ;"; $rs = odbc_exec($conn,$sql); if (odbc_error()) { echo odbc_errormsg($conn); exit(1) ; }//end of if 実行すると、なぜかデータを表示するけど、エラー~ セグメンテーション違反です なんだろう?ネットで探すと、ああ、ある。これだな。~ http://d.hatena.ne.jp/root8537/20140916/1410880230 phpのソースの中の以下のソースみたい。~ /ext/odbc/php_odbc.c #endif /* HAVE_ADABAS */    default: rc = SQLColAttributes(result->stmt, (SQLUSMALLINT)(i+1), SQL_COLUMN_DISPLAY_SIZE, NULL, 0, NULL, &displaysize); displaysize = displaysize <= result->longreadlen ? displaysize : result->longreadlen; /* Workaround for Oracle ODBC Driver bug (#50162) when fetching TIMESTAMP column */ if (result->values[i].coltype == SQL_TIMESTAMP) { displaysize += 3; } //result->values[i].value = (char *)emalloc(displaysize + 1);  //rc = SQLBindCol(result->stmt, (SQLUSMALLINT)(i+1), SQL_C_CHAR, result->values[i].value, // displaysize + 1, &result->values[i].vallen); //コメントアウトした部分を以下のように変更。displaysize + 1をdisplaysize + 4に変更。 result->values[i].value = (char *)emalloc(displaysize + 4); rc = SQLBindCol(result->stmt, (SQLUSMALLINT)(i+1), SQL_C_CHAR, result->values[i].value, displaysize + 4, &result->values[i].vallen); break; } } return 1;  } phpを再コンパイルして、make install でapacheを再起動。~ もう一度実行してみる。~ エラーはでなくなりました。 これで心配なく使えます。 [[unixODBCでDB2を使った時のnullの問題]]

表示オプション

横に並べて表示:
変化行の前後のみ表示:
目安箱バナー