全開に引き続き。。。初めてこちらにたどり着いた方、こちらからお読みください。
AS400 / ZEND / PHP / Ajax#1(AS400とPHPの連携、コストなし)
気をつけてください、ローカルでZEND for Windows なんかを使う場合にはDB2コネクトありませんから。。。たとえ、あなたのお使いのZEND for i にあったとしても。。。
1.こちら、PDOを使う場合。
try {
if ($server_name == 'localhost') {
$dbh = new PDO('odbc:DRIVER={iSeries Access ODBC Driver};SYSTEM=AS400のドメインネーム/ホストネーム;HOSTNAME=AS400のドメインネーム/ホストネーム;DATABASE=AS400赤丸の中;NAMING=1;', 'サーバーのユーザー名', 'アクセスパスワード', array(
PDO::ATTR_PERSISTENT => true
));
} else {
$dbh = new PDO("ibm:AS400赤丸の中", "サーバーのユーザー名", "アクセスパスワード", array(
PDO::ATTR_PERSISTENT => true
));
}
} catch (Exception $e) {
die("なんで死んでしまったんだ。。。ドメイン名はあってるのか?だめだったら、IPアドレス直でやってみよう。データベースはAS400のSystemネームだぞ?それでもだめだったら、あとはクォーテーションなんか間違ってねーか?: " . $e->getMessage());
}
function funcpushdata($dbh, $sql){
try {
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->beginTransaction();
$sth = $dbh->prepare($sql);
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
$dbh->commit();
} catch (Exception $e) {
$dbh->rollBack();
echo "ここの場合はSQLを最初に心配したほうがいいかもです。: " . $e->getMessage();
}
return $data;
}
2.で、こっちはiSeries Access ODBC for Windows 付属のODBCアドミニストレーションを使った方法。PDOは使えないらしい。。。間違ってたらごめんなさい。
if ($server_name == 'localhost'){
$server="astest";
$user="サーバーのユーザー名";
$pw="アクセスパスワード";
$connect = odbc_connect($server,$user,$pw);
if ($connect == false) {
echo "Use System i Navigator Defaultをコネクションで選択しているか?セキュリティも全部System iに任せちまえ!.<br>";
}
$result=odbc_exec($connect, $sql) or die("ここの場合はSQLを最初に心配したほうがいいかもです。");
$data = array();
while($myRow = odbc_fetch_array($result)){
$data[] = $myRow;
}
odbc_close($connect);
}else if ($server_name == 'AS400のドメインネーム/ホストネーム'){
$server="*LOCAL";
$user="サーバーのユーザー名";
$pw="アクセスパスワード";
$connect = db2_connect($server,$user,$pw);
if ($connect == false) {
echo "もうこれはね。。。わからん。サーバー名を確認すること。これがプロダクションサーバーで実際にデータベースとのやり取りをするところなんで、大体はローカルをさせば大丈夫だと思うんだが。こればっかりはそのシステムによるでしょう.<br>";
}
$result=db2_exec($connect, $sql) or die("Data error");
$data = array();
while($myRow = db2_fetch_assoc($result)){
$data[] = $myRow;
}
db2_close($connect);
}else{
echo "これはもう電源だな。。。<br>";
}
で、ちょっと心配。。。なんて場合は、こうしても良いかもです。これは、個人の責任でね。ねこは、もっとバッシバシにやりたい派です。時間かかるけどな。
function fnc_Chk($str, $charset = 'UTF-8'){
return htmlspecialchars($str, ENT_QUOTES, $charset);
}
$date1 = fnc_Chk($_GET['Date1']);
$date2 = fnc_Chk($_GET['Date2']);
array_push($aryParm, $date1, $date2);
$and = $and." and datefield between (?) and (?)";
$sql = "select * from antanotable where userid = 'tomato'".$and;
RPGプログラマ上がりのねこが必死でつかんだ情報です。「こんなん、もうしってるわっ」ってなかた、すみません。でも初心者の方やこれからPHPとAS400を連携させようとされてる方、ささやかながらでも情報を共有できればとアップしました。少しでも役に立ったと思われた方、こちらのアフィリエイトクリックしてください。バナーブリッジ様のバナーです。ねこは今アフィリエイトにチャレンジしてます。
アフィリエイトというのはアメリカからもできんのかいな。一日目
アフィリエイトというのはアメリカからもできんのかいな。一日目(午後の部)
アフィリエイトというのはアメリカからもできんのかいな。二日目
アフィリエイトというのはアメリカからもできんのかいな。三日目
アフィリエイトというのはアメリカからもできんのかいな。四日目(Googleアドセンス検証とAS400、PHPの話を少し)
アフィリエイトというのはアメリカからもできんのかいな。五日目‐なら、Googleアナリティクスしてみたる。