13

MS Access でクエリを実行すると、次のようなクエリを喜んで使用できます。

SELECT clients.* FROM clients WHERE active=True;

また

SELECT clients.* FROM clients WHERE active=-1;

だがしかし

SELECT clients.* FROM clients WHERE active=1;

さらに、PDO を使用してデータベースにクエリを実行したい場合、準備済みステートメントを使用できます。

$db->prepare('SELECT clients.* FROM clients WHERE active=:isactive;');
$db->bindValue(':isactive', True); //Does not work
$db->bindValue(':isactive', 1); //Does not work
$db->bindValue(':isactive', -1); //Does work

そのtrueため、単純なクエリを Access に送信するときに機能しますが、バインドのみ-1または0ブール値で機能する場合。

これはなぜですか、また、他の言語/データベースで通常いつを意味する-1のはなぜですか?true1true

4

3 に答える 3

0

面白くしようとしているわけではありませんが、答えは「それが彼らのやり方だったからです」です。1 は通常、他の言語では true を意味するというあなたの声明は正しくありません。たとえば C/C++ では、false は ==0 として定義され、true は !=0 として定義されます。

そのため、 if(pointer) { ...} と言うことができます

于 2013-06-28T15:12:19.520 に答える