注意:第6行中的数组到字符串的转换!关于SQL的问题

时间:2019-05-04 18:45:35

标签: php mysql sql

我有一个简单的代码(非常简单的代码),用于尝试某项工作,并且正在尝试一个函数,该函数与post方法中的form radio变量一起使用,以使用表格的输出。但是当我尝试使用它时,它不会更新,并且会通知我。

它与查询有关(因为错误显示在代码的那一行中),但我仍然不知道它是什么。

我试图以不同方式更改SQL语句的语法。我更改了用于更改“ image_value”列的用户。我什至在phpmyadmin中检查了查询的语法,并且有效。

这是php代码:

<?php
mysql_connect("localhost","root","");

function user_image($value){
    print_r($value);

    //This is the problem
    $query = "UPDATE users SET image_value = '$value' WHERE (ID) = '6'";

    mysql_query($query);
}
?>

在这里,我有表单的代码以及如何使用该函数(如果有未发现的错误)

<form method="post" action="">
        <input type="radio" name="1" value="1">imagen1
        <br>
        <input type="radio" name="2" value="2">imagen2
        <br>
        <input type="radio" name="3" value="3">imagen3
        <br>
        <input type="radio" name="4" value="4">imagen4
        <br>
        <button type="submit"><span>Submit</span></button>
    </form>
    <?php
    user_image($_POST);
    ?>

2 个答案:

答案 0 :(得分:0)

您的问题是您要传递完整的对象$_POST

您未指定您的无线电名称是否正确(无线电名称为1到4之间的数字)。

在这种情况下,您尝试通过单选按钮设置image_value的值。

<form method="post" action="">
        <input type="radio" name="image_value" value="1">imagen1
        <br>
        <input type="radio" name="image_value" value="2">imagen2
        <br>
        <input type="radio" name="image_value" value="3">imagen3
        <br>
        <input type="radio" name="image_value" value="4">imagen4
        <br>
        <button type="submit"><span>Submit</span></button>
    </form>

<?php
    if (isset($_POST['image_value'])) {
       user_image($_POST['image_value']);
    }
?>

和您的功能

function user_image($value) {
    mysql_connect("localhost","root","");

    print_r($value);

    //This is the problem
    $query = "UPDATE users SET image_value = '$value' WHERE (ID) = '6'"; //ID should be dynamic base on the user I guess

    mysql_query($query);
}
?>

答案 1 :(得分:0)

$ _ POST将一个对象值传递给服务器,您需要指定要使用的属性var_dump $ value来了解它包含的所有内容。