PHP将boolean值插入到mysql中

时间:2017-06-14 08:12:42

标签: php mysql

我试图通过PHP脚本将布尔值插入到mysql表中。

这是我的代码:

$id = "104"
  $bool1 = true
  $bool2 = false

$sql = "INSERT INTO Monday  SET Id = '$id' , morning = '$bool1' , night = '$bool2' " ;

//Store the result in $result
$result = $conn->prepare($sql) ;

// Get the result  in a Returnvalue var
if (!$result) {
    throw new Exception($result->error);
}
$result->bind_param("sii" ,$patientId , $morning , $night );
$returnValue = $result ->execute();
return $returnValue ;`

在MYSQL表结构中

morning and night both are of type BOOLEAN (tinyint(1))

当我执行此代码时,true和false都插入值' 0'

1 个答案:

答案 0 :(得分:0)

因为morningnight是tinyint,所以你应该传递数字(整数)0 = false和1 = true。

此外,您的mysqli_代码有点奇怪,使用准备好的参数化查询时,如果不将值连接到查询文本中,则使用?参数

$id = "104"
$bool1 = 1
$bool2 = 0

$sql = "INSERT INTO Monday  SET Id = ? , morning = ? , night = ?" ;

$result = $conn->prepare($sql) ;

// Get the result  in a Returnvalue var
if (!$result) {
    throw new Exception($result->error);
}
$result->bind_param("sii" ,$patientId , $morning , $night );
$returnValue = $result ->execute();
return $returnValue;
  

您可能还想重新考虑数据库设计。每天有一张桌子很奇怪。而是考虑一个具有更通用名称的表,并在其中有一个名为dayname的列或类似的列。

所以你的表可能看起来像这样

id
dayname
morning
night

并且单个表格将保留一周的所有日期