PostgresSQL文→MySQL文への変換について

回答受付中の質問

PostgresSQL文→MySQL文への変換について

始めまして、soulutionと申します。

この度、社内イントラネット構築により、備品発注機能をポータルサイトに追加することになりました。
ポータルサイトはphp+mysqlにて動作しております。
なのでphp+mysqlにて備品発注機能を実装しようと思いまして、ベースはショッピングカート機能で作成しようかと思っております。
googleなどでphpによるショッピングカート作成しているフリープログラムを見つけ、プログラム解析をしていたのですが、そのプログラムのデータベースはPostgresSQLベースで組まれており、当方ではPostgresSQL文をMysql文に変換できなかったため、皆様にお力添えしていただけたらと思っております。
いろいろ思考錯誤しましたが、エラーとなりました。。
一応下記に構文を載せておきます。
どうぞよろしくお願い致します。

開発環境(サーバ)
OS:windows XP sp2
PHP:バージョン5.28
MySQL:バージョン5.1
エディタ:Adove DreamweaverCS3
ブラウザ:Internet Explore ver6.0


PostgreSQL文(これをMySQL用に変換します)
------------------------------------------------------------
if($mode == 'sort'){
if($a){
$sql = "select * from db01 where a = " . $a . " order by " . $b . " " . $c;
}else{
$sql = "select * from db01 order by " . $b . " " . $c;
}
}else{
$sql = "select * from db01 order by " . $b . " " . $c;
}


MySQL(当方が考えました)
------------------------------------------------------------
if($mode == 'sort'){
if($a){
$sql = "select * from db01 where a=$a ORDER BY $b.$c ";
$mysql->query($sql);
}else{
$sql = "select * from db01 ORDER BY $b.$c";
$mysql->query($sql);
}
}else{
$sql = "select * from db01 ORDER BY $b.$c";
$mysql->query($sql);
}
エラー
------------------------------------------------------------
Fatal error: Call to undefined function pg_query() in C:\Program Files\Apache Group\Apache2\htdocs\Prototype\equipment-order.php on line 408

投稿日時 - 2008-12-15 11:12:51

QNo.4557127

すぐに回答ほしいです

2人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

回答(2件中 1~2件目)

ANo.2

#1です。
そうですね、pgってついているものは基本的にポスグレ専用の物になっていますので、それを変更していかないといけません。
エディターとかでgrepかけて探したほうが早いかも知れません。

投稿日時 - 2008-12-15 13:03:25

ANo.1

pg_query()この関数が使えないよ。
といわれています。

pg_queryはポスグレ専用の関数なので、
これをmysql_queryに変えないといけません、
基本的にポスグレとmysqlはSQLは一緒で使えるはずなので、
予想では、mysql_query mysql_db_select mysql_connect
ここら変の関数に変えないといけないと思います。

$mysql->query($sql);
これのクラスに入っているのではないですか?

投稿日時 - 2008-12-15 11:25:49

補足

見つけました。
どれに変換して良いのか判らないのですが、もしよろしければお教えくださいませ・・。
(1)$result = pg_query($d_base, $sql) or die("データ抽出エラー");

(2)$row = pg_numrows($result); //検索結果の行数を取得

(3)$pg_fetch_row($result,$i);

一応私なりに変換したのがこちらです。
(1)$result = mysql_query($d_base, $sql) or die("データ抽出エラー");

(2)$row = strSelectNumRows($result); //検索結果の行数を取得

(3)$mysql->fetch($result,$i);

投稿日時 - 2008-12-15 11:36:30

お礼

なるほど。そういうことですか・・
そういえば、今見直すと見たことない関数がたくさんあります・・汗
これをmysql用に変えないといけないのですね。
おそらく$mysql->query($sql);に入ってると思います・・。

迅速な回答ありがとうございます。
ちなみに・・
pg_fetch_row
もですよね。

投稿日時 - 2008-12-15 11:34:28

あわせてチェックしたい
  • \'xjis.nls\' ...
  • Daemon Tools 408 ...
  • P408のメール ...
PR

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら