仅当'if statment'正确时才插入数据库

时间:2017-04-04 11:26:04

标签: php database

下面我的PHP代码用于医院设置,我希望应用程序仅在房间号等于1时插入数据,如果房间号等于2或任何其他数字我希望它返回错误。有人可以告诉我如何解决这个问题吗?感谢

          <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>4.2.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>4.2.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>4.2.0.RELEASE</version>
            </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.2.0.RELEASE</version>
        </dependency>

        <!-- Spring Security Jars starts-->
        <!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-config -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
            <version>4.2.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>4.2.0.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-web -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>4.2.0.RELEASE</version>
        </dependency>
        <!-- Spring Security Jars ends-->

3 个答案:

答案 0 :(得分:2)

您应该在第一个条件下执行查询,否则会显示错误:

if($room_number == '1') {
    $mysql_qry = "insert into patients2
    (patient_name, doctor_name, check_in_date, room_number, bed_number, notes, time) 
    values ('$patient_name', '$doctor_name', '$check_in_date', '$room_number', '$bed_number', '$notes', '$time')";

    if($conn->query($mysql_qry) === TRUE) {
        echo "Insert successful";
    } else {
        echo "Error: " . $mysql_qry . "<br>" . $conn->error;
    }
}

else {
    echo "Error: Room number value must be 1.";
}   

另外请注意您的第if($room_number = '1')行,在这种情况下,您将值分配给您的变量=,而不是将其与两个{{1}进行比较}

答案 1 :(得分:0)

if($room_number == '1'){
    $mysql_qry = "insert into patients2
    (patient_name, doctor_name, check_in_date, room_number, bed_number, notes, time) 
    values ('$patient_name', '$doctor_name', '$check_in_date', '$room_number', '$bed_number', '$notes', '$time')";
}
else
{
 echo "Error: " . $mysql_qry . "<br>" . $conn->error;
}

答案 2 :(得分:0)

首先,你的情况是错误的。您没有检查$room_number是否等于1,但是您要分配字符串&#34; 1&#34;到那个变量。您需要2 =个符号才能进行比较,或3 =进行严格的比较。请在此处详细了解:http://php.net/manual/en/language.operators.comparison.php

其次,你需要调整你的逻辑。您正在检查房间号是否等于1,然后在其他区块中检查房间号是否为1,冗余检查。只有在房间号不等于1时才会执行else,因此无需再次检查。最后,无论$room_number值如何,都执行查询。将底部移动到第一个if的主体中。像这样:

<?php
if ($room_number === "1") {
    $mysql_qry = "insert into patients2
        (patient_name, doctor_name, check_in_date, room_number, bed_number, notes, time) 
        values ('$patient_name', '$doctor_name', '$check_in_date', '$room_number', '$bed_number', '$notes', '$time')";

    if($conn->query($mysql_qry) === TRUE) {
        echo "Insert successful";
    } else {
        echo "Error: " . $mysql_qry . "<br>" . $conn->error;
    }
} else {
    echo "Room number does not equal 1";
}

现在,我们检查$ room_number是否为string("1"),如果是,我们创建查询并执行它。如果执行成功,我们打印成功消息,否则打印查询错误。如果$ room_number不完全是"1",我们会显示有关它的错误消息。

相关问题