[PHP-users 29482] Re: numrows()のエラー?

M.Terao mayo @ b-gets.ddo.jp
2006年 6月 24日 (土) 03:33:10 JST


寺尾です。

ソースを見る限り、問題なさげ・・・。
気になったのは、
> if(preg_match("/WINDOWS/",$_ENV["OS"])){
> $sql=mb_convert_encoding($sql,"SJIS","EUC-JP");
> }
の部分ですが、環境はWindows環境なのでしょうか?
その場合DBはSJISなのでしょうか?

> >どのようなコードを動かしているのか提示されてないですが、もしかしてデータ
> 
> >ベースオブジェクトで直接このメソッドを呼んでいませんか?
> 
> コードをいれていませんでした。
> すみません;;
> 
> >上で書かれていることが「直接呼ばずにDB_resultを使って」となっています。
> >通常であれば、このように使わないでしょうか?
> 
> >$result->numRows();
> 例の通りにかえてみたら、検索がうまくできなくなってしまいました。
> 
> ちなみに、本についていたコードで試してみましたが、やはりうまくいきません
> でした。。。
> (エラーではなく、検索をしてくれなくなりました)
> 
> 
> <?php
> require_once("DB.php");
> 
> $dbUser = "***";
> $dbPass = "***";
> $dbHost = "***";
> $dbName = "sampledb";
> $dbType = "mysql";
> 
> $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName";
> 
> $conn = DB::connect($dsn);
> 
> if(DB::isError($conn)){
> die($conn->getMessage());
> }
> 
> $search_key =addslashes($_POST['serch_key']);
> 
> 
> $sql=<<<EOS
> SELECT * FROM member
> 
> WHERE
> last_name like '%$search_key%'
> OR
> first_name like '%$search_key%'
> EOS;
> 
> 
> if(preg_match("/WINDOWS/",$_ENV["OS"])){
> $sql=mb_convert_encoding($sql,"SJIS","EUC-JP");
> }
> 
> 
> $result=$conn->query($sql);
> if(DB::isError($result)){
> die($result->getMessage());
> }
> 
> $count=$result->numRows();
> print "検索結果は".$count."です。<BR>";
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3




PHP-users メーリングリストの案内