变量$ newvar5未在UPDATE语句

时间:2017-09-18 13:20:02

标签: php

我想知道是否有人可以解释为什么$ newvar5(整数)没有在UPDATE语句中传递,但是如果我明确声明$ newvar5 = 1;例如。如果我没有明确地声明它,我仍然可以回显$ newvar5的类型和值,我得到整数和1(分别),其中1是从选择下拉列表返回的值。感谢

 <?php

    $newvar3 = $_POST["area1"];
    $newvar4 = $_POST['select1'];

    $newvar5 = current($newvar4);
    settype($newvar5, "integer");

    echo $newvar5; 

    /* 
    The above echoes $newvar5 = 1 (it's type is integer) when i select the 
    first value from the select dropdown but it doesn't work in the update 
    query shown below. However, it does work if i explicitly code $newvar5=1;  
    */


    if(isset($_POST['button'])) {

    $sql = "UPDATE tblContent SET content = '$newvar3' WHERE contentID='$newvar5'";


    if ($conn->query($sql) === TRUE) {
        echo "<br>";
        echo "Updated Successfully";
    } else {
        echo "Error updating record: " . $conn->error;
    }
    }
    ?>

1 个答案:

答案 0 :(得分:0)

感谢回复人员。是的,我知道它对SQL注入是开放的。这是我的待办事项清单。现在我只想更新数据库。我使用了current(),因为正确推断,选择值是数组格式。我还没有进一步说明为什么这不起作用。当我宣布$ newvar5 = 1时;当我设置$ newvar5 = current($ newvar4)时,更新工作正常;它没有(即使它回显相同的值= 1和类型=整数。