我正在尝试通过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"。
因为morning
和night
很小,所以你应该传递数字(整数(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
一张桌子可以容纳一周中的所有日子