Home > Tags > 演算子

演算子

ADODBでのWHERE句 IN演算子

PHPのmysql関数で書かれているSQL文を
ADODBでの形に書き換えようと思ったときにつまづきました。

 
ADOでお馴染みの(?)prepareとexecuteを利用しようとして、
?を使ったクエリを作成しました。

$query = select * from [table] where [カラム] in ( ? ) ;

?に入るのは「1,2,3,4,5,6」という文字列。

これで実行すると・・・

沢山データがとれるはずがなぜか1つだけしかとれませんでした。

 
そこでexecuteされた結果をvar_dumpして、
実行されたSQL文を見てみると、

select * from [table] where [カラム] in ( ‘1,2,3,4,5,6′ ) ;

・・・文字列全体をクオートで囲ってしまっていました。

 
本来なら

select * from [table] where [カラム] in ( 1,2,3,4,5,6 ) ;

select * from [table] where [カラム] in ( ‘1′,’2′,’3′,’4′,’5′,’6′ ) ;

のどちらかでないといけないのですが・・・。

 
いろいろ調べましたが、結局分からずで
SQL文の中に関数を入れてしまいました。
(エスケープはもちろんしていますが・・・)

どなたかやり方をご存じの方、いらっしゃいませんか?(苦笑)

ADODBマニュアルをしっかり読めば書いてあるのだろうか・・・。

ADODBマニュアル
ADODBマニュアル
 

エラー制御演算子の順序

あるキャストされている変数に対して、
どの部分にエラー制御演算子を入れればいいのか今まで分かりませんでした。

正解は、

(int)@$_REQUEST["test"];

だそうです。
 

JavaScriptのクラスってどう扱うの?

前回と同じく、
とほほのJavaScriptリファレンスでクラスについて調べました。

JavaScript では標準で用意されている型(クラス)のほか、
function を用いてユーザー定義のクラスを定義することができます。

 
自分で定義したクラスを呼び出すには、

var test = new testclass(”aaa”);

でnew演算子を使えばいいようです。

ここら辺はPHPと同じ感じですね。

 
話は変わりますが、そもそもJavaScriptを勉強し始めたのは、
仕事で他の人が作ったソースを修正しなければいけなくなったからです。

PHPである程度システム言語には慣れたつもりで今したが、
思った以上に読めなくて苦労しています(苦笑)
 

PHPでの@(アットマーク)の意味

人のソースを見ていて出てきていたPHPのソースの中での「@(アットマーク)」。

これが何を意味しているか、やっとわかりました。

$test = $_GET["test"];

とすると、PHP5ではエラーが出てしまうときがあります。
(どういう時に出るかはまだ不明です。。。)

それを、

$test = @$_GET["test"];

とすると、エラーが出なくなります。

この@(アットマーク)は「エラー制御演算子」といって、
エラーがあってもエラーメッセージを出力させないようにさせるためのものらしいです。

 
話変わりますが、
この話を検索しようと思ってずっと「@」と検索していたのですが出るわけもなく、
「アットマーク」と検索したら一発で出てきました。。。

だから件名にも「アットマーク」と入れています(笑)
 

Home > Tags > 演算子

Archives
Tag Cloud
Feeds

Return to page top