我试图通过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'
答案 0 :(得分:0)
因为morning
和night
是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
并且单个表格将保留一周的所有日期