SQLserverからPostgreSQLにデータ移行する方法

このQ&Aのポイント
  • PHPとSQLserverを使用した環境で作成したデータをPostgreSQLに移行する方法について解説します。
  • SQLserverからPostgreSQLにデータを移行する際のクエリ作成や結果の出力方法について、わかりやすく説明します。
  • SQLserverからPostgreSQLにデータを移行する際に役立つ情報をまとめました。
回答を見る
  • ベストアンサー

SQLserverからPostgreSQLに移行したい

PHPとSQLserverを使用した環境でデータを作成していましたが、 DBがPostgreSQLに変更になりました。 接続するところまではできましたが、 クエリ作成、結果を出力するところがわかりません。 WEBで検索しましたが、よくわかりませんでした。 どうぞ宜しくお願い致します。 ********************************************************** SQLserverを使用する前提で作成したデータ ********************************************************** $sql = "select * from テーブル名"; $rc = mssql_query($sql,$cont); print("<table>"); while ($array = mssql_fetch_array($rc)) { print("<tr><td>"); print "".$array["氏名"].""; print("</td><td>"); print "".$array["住所"].""; print("</td><td>"); print "".$array["電話番号"].""; print("</td></tr>"); } print("</table>");

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • syuuiwsd
  • ベストアンサー率56% (17/30)
回答No.1

このコードだけだったら、関数 mssql_**** を pgsql_**** で置き換えるだけでオーケーだとお思います

smorgas030
質問者

お礼

回答ありがとうございます。 教えていただいたように修正したら問題なく表示されました。 ありがとうございました。

関連するQ&A

  • SQLにあるデータをWEB画面に出力するときに、フィールドの一部の値だけ表示させたい

    SQLにあるデータをWEB画面に出力するときに、 フィールドの値を全部表示させずに、 頭から3文字とか、後ろから2文字表示させたい場合は どうすればいいのでしょうか。 LEFT関数を使って作ってみましたが、うまくできません。 ご教授ください。 ****************************************************** 作成したPHP ****************************************************** <?php $cont = mssql_connect("サーバ名","ユーザ名","パスワード"); mssql_select_db('[DB名]', $cont); $sql = "select 氏名, 住所, LEFT(番号, 3) from テーブル名 $rc = mssql_query($sql,$cont); while ($array = mssql_fetch_array($rc)) { print("<table><tr><td>"); print "".$array[" LEFT(番号, 3)"].""; print("</td><td>"); print "".$array["住所"].""; print("</td><td>"); print "".$array["氏名"].""; print("</td></td></table>"); } mssql_close($cont); ****************************************************** 番号フィルドの値は5桁~10桁の数字が入っています。 ****************************************************** ?>

    • ベストアンサー
    • PHP
  • SQLにあるデータをWEB画面に出力するときに、フィールドの値を編集して表示させたい

    SQLにあるデータをWEB画面に出力するときに、 フィールドの値を編集して出力したいと考えています。 具体的には、フィールドの値が5~10桁の数字で、 WEB画面には下3桁目に「-]を入れたいと考えています。 例(1)SQLの番号フィールドの値:123456 WEB表示:1234-56 例(2)SQLの番号フィールドの値:12345 WEB表示:123-45 どうぞ宜しくお願い致します。 ****************************************************** 作成したPHP 番号フィールドの値を編集して表示したい ****************************************************** <?php $cont = mssql_connect("サーバ名","ユーザ名","パスワード"); mssql_select_db('[DB名]', $cont); $sql = "select 氏名, 住所, 番号 from テーブル名 $rc = mssql_query($sql,$cont); while ($array = mssql_fetch_array($rc)) { print("<table><tr><td>"); print "".$array["番号"].""; print("</td><td>"); print "".$array["住所"].""; print("</td><td>"); print "".$array["氏名"].""; print("</td></td></table>"); } mssql_close($cont); ?>

    • ベストアンサー
    • PHP
  • ページング処理をさせたい

    テーブルのデータを20件表示させ、「next」を押すと 次の20件を表示させるPHPを作成したいと考えています。 (「back」を押すと、前の20件を表示するようにもしたい) そこで、以下のようなファイルを作成しました。 実行をすると、idが「1」から「19」までのデータが表示され、 「next」を押しても、同じ「19」までのデータが表示されます。 (idは「1,2,3,4,…」のように1づつ増えるフィールドになります。) **************************************** 作成したtest.phpのコード 環境:PHP5 Apache2.2 MQSQLver5 **************************************** <body> <a href="test.php?p=10">next</a> <?php $startData = $_GET['p'];//GET送信された件数の値を取得 $endData = $startData + 10-1; $cont = mssql_connect("サーバ名","ユーザ名","パスワード"); mssql_select_db('[DB名]', $cont); $sql = "select * from テーブル名 where id <= ".$endData; $rc = mssql_query($sql,$cont); ?> <table> <?php do{ while ($array = mssql_fetch_array($rc)) { print("<tr>"); print("<td>"); print $array["氏名"]; print("</td>"); print("<td>"); print $array["住所"]; print("</td>"); print("</tr>"); } }while (mssql_next_result($rc));//次のデータの読み込み mssql_close($cont); ?> </table> </body> </html>

    • ベストアンサー
    • PHP
  • 「次の10件を表示する」のような表示がしたい

    住所録を表示するページをPHPで作成しました。 問題なくできたのですが、データが増えたので一度に表示するのは例えば20件とかにして、「次の20件」のようなボタンをおすと、 21件~40件を表示させ、そのページには、 「前の20件」と「次の20件」のボタンを表示させたいと考えています。 最初のページには、「前の20件」ボタンはなく、 最後のページには、「次の20件」ボタンは表示させないように考えています。 どのようにすればよろしいでしょうか。 ご教授ください。 ************************************************ 作成したPHP ************************************************ <?php print("<table>"); $cont = mssql_connect("サーバ名","ユーザ名","パスワード"); mssql_select_db('DB名', $cont); $sql = "select * from テーブル名 $rc = mssql_query($sql,$cont); while ($array = mssql_fetch_array($rc)) { print("<tr>"); print("<td>"); print "".$array["氏名"].""; print("</td>"); print("<td>"); print "".$array["住所"].""; print("</td>"); print("</tr>"); } print("</table>"); mssql_close($cont); ?> ************************************************ 環境 PHP5.2 Apache2.2 SQLserverVersion5 PHPとSQLは別サーバになります。 両サーバOS:windows

    • ベストアンサー
    • PHP
  • 氏名をあいうえお順に並べて行ごとにボタンで表示させたい

    ある住所録があり、 「あ行」のボタンを押すと、「あ」~「お」の氏名の人を表示させ、 「か行」のボタンを押すと、「か」~「こ」の氏名の人を、 「さ行」のボタンを押すと、「さ」~「そ」の氏名の人を、 同じページに表示させたいと考えています。 「あ」~「お」の氏名の人を表示させるSQLはできました。 「か」~「こ」を表示する時も同じように作成すればいいかと思いますが、それをボタンで実行させるプログラムがわかりません。 違うページであれば、違うPHPファイルを作成して、 ボタンからそこにリンクするようにいいのかと思いますが、 同じページでボタンを押すと、それぞれの行の人の一覧を表示させたいと思います。 宜しくお願い致します。 ************************************************************ 「あ」~「お」の氏名の人を表示させるプログラム ************************************************************ <?php print("<table>"); print("<tr>"); print("<td>氏名</td>"); print("<td>住所</td>"); print("</tr>"); $cont = mssql_connect("サーバ名","ユーザ名","パスワード"); mssql_select_db('DB名', $cont); $sql = "select * from テーブル名 WHERE(person LIKE N'あ%')OR(person LIKE N'い%')OR(person LIKE N'う%')OR(person LIKE N'え%')OR(person LIKE N'お%') ORDER BY person"; $rc = mssql_query($sql,$cont); while ($array = mssql_fetch_array($rc)) { print("<tr><td>"); print "[".$array["person"]."]"; print("</td><td>"); print "[".$array["address"]."]"; print("</td></tr>"); } print("</table>"); mssql_close($cont); ?> ************************************************************ 環境 PHP5.23 Apache2.2 SQLserverVersion5 SQLとPHPは別サーバになります。

    • ベストアンサー
    • PHP
  • SQLServerのデータをPostgreSQLに移行

    SQLServer上にあるデータをPostgreSQLに移行するのによい方法はありますか?データの移行のみでテーブル構造は既にPostgreSQL上で作成(SQLServerのテーブル構造とほぼ同じ)しているので移行しません。 現在CSVで入出力することを考えていますが、これよりもっと簡単にできる方法や、ソフトがあれば教えてください。

  • 繰り返しのコードをまとめて簡略化したい

    以下のようなPHPを作成しました。 が、同じようなコードが繰り返し使われていて、 なんとか簡略化できないかなと考えています。 例えば、↓が10回出てくる。 LEFT(番号,LEN(番号)-2) + '-' + RIGHT (RTRIM(番号), 2) AS 番号2 なにかやり方あるのでしょうか。 見当違いのとこを言っていたらすいません。 ****************************************************** 作成したPHP 環境:PHP5.2 Apache2.2 SQLserver5 ****************************************************** <a href="clip.php?x=a">あ</a><br> <a href="clip.php?x=ka">か</a><br> <a href="clip.php?x=sa">さ</a><br> … <a href="clip.php?x=wa">わ</a><br> <?PHP $cont = mssql_connect("サーバ名","ユーザ名","パスワード"); mssql_select_db('[DB名]', $cont); if ($_GET['x']=='a') { // あ行 $sql = "select 氏名, 住所, LEFT(番号,LEN(番号)-2) + '-' + RIGHT (RTRIM(番号), 2) AS 番号2 from テーブル名 WHERE (氏名 LIKE N'あ%' OR 氏名 LIKE N'い%' OR 氏名 LIKE N'う%' OR 氏名 LIKE N'え%' OR 氏名 LIKE N'お%') ORDER BY 氏名"; } if ($_GET['x']=='ka') { // か行 $sql = "select 氏名, 住所, LEFT(番号,LEN(番号)-2) + '-' + RIGHT (RTRIM(番号), 2) AS 番号2 from テーブル名 WHERE (氏名 LIKE N'か%' OR 氏名 LIKE N'き%' OR 氏名 LIKE N'く%' OR 氏名 LIKE N'け%' OR 氏名 LIKE N'こ%') ORDER BY 氏名"; } if ($_GET['x']=='sa') { // さ行 $sql = "select 氏名, 住所, LEFT(番号,LEN(番号)-2) + '-' + RIGHT (RTRIM(番号), 2) AS 番号2 from テーブル名 WHERE (氏名 LIKE N'さ%' OR 氏名 LIKE N'し%' OR 氏名 LIKE N'す%' OR 氏名 LIKE N'せ%' OR 氏名 LIKE N'そ%') ORDER BY 氏名"; } ……………た行~ら行も同様のコードなので省略………………… if ($_GET['x']=='wa') { // わ行 $sql = "select 氏名, 住所, LEFT(番号,LEN(番号)-2) + '-' + RIGHT (RTRIM(番号), 2) AS 番号2 from テーブル名 WHERE (氏名 LIKE N'わ%' OR 氏名 LIKE N'を%') ORDER BY 氏名"; } $rc = mssql_query($sql,$cont); print("</table>"); while ($array = mssql_fetch_array($rc)) { print("<tr><td>"); print "".$array["氏名"].""; print("</td><td>"); print "".$array["住所"].""; print("</td><td>"); print "".$array["番号2"].""; print("</td></tr>"); } print("</table>"); mssql_close($cont); ?>

    • ベストアンサー
    • PHP
  • テーブル<TR></TR>の処理について

    次の様な処理を行いたいのですが方法をご教授下さい。 DBのテーブルに10個のレコードがあります。 すべてのレコードの情報を表示させます。 HTMLのテーブルは2列5行で表示させたい。 つまりHTMLで下記のように表示したい。 <TABLE> <TR> <TD>データ1</TD> <TD>データ2</TD> <TD>データ3</TD> <TD>データ4</TD> <TD>データ5</TD> </TR> <TR> <TD>データ6</TD> <TD>データ7</TD> <TD>データ8</TD> <TD>データ9</TD> <TD>データ10</TD> </TR> </TABLE> これをPHPで <? $con = mysql_connect("$dbhost", "$dbuser", "$dbpass"); mysql_select_db("$dbname"); $sql= "select * from DB_name"; $rs=mysql_query($sql); ?> <TABLE> <TR> <? while($row=mysql_fetch_array($rs)){ ?> <td><? echo $row['data'] ?></td> <?}?> </tr> </table> のように単純にデータを取り出すことは出来るのですが、 データを5つ毎に</TR><TR>を出す方法が分かりません。 このような処理は皆様はどのように行っていますか。 基本的な質問で申し訳ありませんが、ご教授下さい。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PostgreSQLに書き込み

    今、PHPでPostgreSQLに接続して データを書き込もうとしていますが、 ”ページを表示できません”とエラーが出てしまいます。 <html> <body> <title>PostgreSQL実験</title> <div align="center"> <table border=1> <caption>検索結果</caption> <tr> <td>ID</td> <td>氏名</td> <td>点数</td> </tr> <br> </table> <?php $d_base = pg_pconnect("user=postgres password=grjtf dbname=mytbl"); if($action == post && $sign == '書き込み') { if($id && $name && $score) { pg_query($d_base,"insert into mytbl values($id,$name,$score)"); } } if($action == post && $sign == '点数修正') { if($id && $score) { pg_query($d_base, "update mytbl set score=$score where id=$id"); } } if($action == post && $sign == '一行削除') { if($id) { pg_query($d_base, "delete from mytbl where id=$id"); } } if($result = pg_exec($d_base, "select * from mytbl")) { $row = pg_num_rows($result); for($i = 0; $i < $row; $i++) { $arr = pg_fetch_row($result, $i); echo "<tr>"; for($j = 0; $j < count($arr); $j++) { echo "<td>$arr[$j]</td>"; } echo "</tr>"; } } ?>

    • ベストアンサー
    • PHP
  • テーブルに送信ボタンをつける

    phpで以下のようなテーブルにデータを表示させるプログラムがあるのですが、表示させる各行の最後に送信ボタンを付けたいのですがどうすればよろしいでしょうか?よろしくお願いいたします。 print ("<TABLE border=\"1\"><TBODY>\n") ; for ($i = 0; $i < $numrows; $i++) { $data = pg_fetch_array ($result, $i) ; print ("<TR>") ; print ("<TD>" . $data[" "] . "</TD>"); print ("<TD>" . $data[" "] . "</TD>"); print ("<TD>" . $data[" "]. "</TD>"); print ("</TD>\n"); } print ("</TBODY></TABLE>\n");

    • ベストアンサー
    • PHP