Php 使用从mysql查询接收的布尔值更新值
我需要一些帮助,在一个小MySQL数据库的字段中切换布尔值。我创建了一个index.php,显示姓名和状态字段(Present/Away)。为此,我使用布尔值。该值可单击,这将切换布尔值。以下是相关代码:Php 使用从mysql查询接收的布尔值更新值,php,mysql,Php,Mysql,我需要一些帮助,在一个小MySQL数据库的字段中切换布尔值。我创建了一个index.php,显示姓名和状态字段(Present/Away)。为此,我使用布尔值。该值可单击,这将切换布尔值。以下是相关代码: $id=$_GET['id']; $qresult = mysqli_query($con,"SELECT Present FROM personnel WHERE Inlogcode='$id'"); $result=mysql_fetch_array($qresult); $prese
$id=$_GET['id'];
$qresult = mysqli_query($con,"SELECT Present FROM personnel WHERE Inlogcode='$id'");
$result=mysql_fetch_array($qresult);
$presence = (bool)$result;
echo "ID is: " .$id . "<BR>";
echo "Boolean res is: " . $presence . "<BR>";
if ($presence)
{
$sql="UPDATE personnel SET Present=True WHERE Inlogcode='$id'";
$resultaat=mysql_query($sql);
}
else
{
$sql="UPDATE personnel SET Present=False WHERE Inlogcode='$id'";
$resultaat=mysql_query($sql);
}
$id=$\u GET['id'];
$qresult=mysqli_query($con,“从人员中选择Present,其中Inlogcode='$id');
$result=mysql\u fetch\u数组($qresult);
$presence=(bool)$result;
echo“ID是:”.$ID。“
”;
echo“Boolean res is:”$在场。“
”;
如果($在场)
{
$sql=“UPDATE Personal SET Present=True,其中Inlogcode='$id';
$resultaat=mysql\u查询($sql);
}
其他的
{
$sql=“UPDATE Personal SET Present=False,其中Inlogcode='$id';
$resultaat=mysql\u查询($sql);
}
我无法找到如何将查询结果转换回真正的布尔值,以便在PHP脚本的其余部分中使用。添加mysql_fetch_数组似乎没有必要,但我似乎丢失了布尔值,因为我总是得到所有的零或一。测试数据库当然包含这两个值。试试看
$presence = $result==1?true:false;
试一试
您可以通过一个查询切换布尔值
'UPDATE personnel SET Present = IF (Present, 0, 1) WHERE Inlogcode="'.$id.'"'
注意字符串和变量之间的“.”。您在代码中没有正确执行此操作。您可以通过一个查询切换布尔值
'UPDATE personnel SET Present = IF (Present, 0, 1) WHERE Inlogcode="'.$id.'"'
注意字符串和变量之间的“.”。您在代码中没有正确执行此操作。您可以通过单个查询执行更新:
UPDATE personnel SET Present = 1 - Present WHERE Inlogcode=?
考虑使用PDO和准备好的语句。您当前的查询易受SQL注入攻击您可以通过单个查询执行更新:
UPDATE personnel SET Present = 1 - Present WHERE Inlogcode=?
考虑使用PDO和准备好的语句。您当前的查询易受SQL注入攻击如果IF不起作用,则无需使用IFT。但这是我第一次尝试并发现有效的解决方案。如果没有IF,没有必要使用IF。但这是我第一次尝试并发现有效的解决方案。这是一个简单的美。我最喜欢的。这是一个简单的美。我最喜欢的。