Что происходит, когда я отправляю логическое значение True-False для оператора PDO в качестве параметра, который связан с полем int? - PullRequest
5 голосов
/ 06 декабря 2011

У меня есть поле int в базе данных и: disabled, как предполагается, имеет значение true false, я предполагаю, что база данных получает логические значения в виде целых чисел 0 и 1, но я не уверен.

function loadbyinput($name,$password,$ipnumber="0.0.0.0",$type="member",$disabled=FALSE){    
$dbh = new PDO(...);
$statement=$dbh->prepare("insert into 
 actor(name,password,ipnumber,type,disabled)
 values(:name,:password,:ipnumber,:type,:disabled)");
$statement->bindParam(":disabled", $disabled);
}

В данный момент я не пишу никакой графический интерфейс, поэтому мне сложно протестировать такие вещи.

Ответы [ 2 ]

9 голосов
/ 06 декабря 2011

Зависит от вашей схемы. Для логических столбцов в базе данных вы можете использовать следующую конструкцию (есть конструкция BOOLEAN, но это просто псевдоним для TINYINT):

`disabled` tinyint(1) NOT NULL DEFAULT '0'

Затем, когда вы привязываете, вы можете принудительно установить значение bool:

$stmt->bindValue(':disabled', $disabled, PDO::PARAM_BOOL);
3 голосов
/ 06 декабря 2011

Полученные эквиваленты:

True = 1
False = 0
...