【问题标题】:I am using PHP and MySQL my input box only updates integer values I want to update character values too [duplicate]我正在使用 PHP 和 MySQL 我的输入框只更新整数值 我也想更新字符值 [重复]
【发布时间】:2020-04-22 14:24:29
【问题描述】:

我正在尝试通过 html 中的输入框更新我的数据库。到目前为止,除了名称之外,一切正常。如果它的实际字符如“玩具”,它不会更新名称。但是,如果我输入诸如 45634 之类的数字,它将更新。“名称”的数据库值是 varchar(15)。

这是我更新数据库中名称的代码。

if(isset($_POST['update']))
{
    $data = getPosts();
    $update_Query = "UPDATE `item` SET `name`=$data[4] WHERE itemID = $data[0]";
    try{
        $update_Result = mysqli_query($conn, $update_Query);

    if($update_Result)
    {
        if(mysqli_affected_rows($conn) > 0)
        {
            echo 'Data Updated';
        }else{
            echo 'Data Not Updated';
        }
    }
} catch (Exception $ex) {
    echo 'Error Update '.$ex->getMessage();
    }
}

我的 HTML 框在这里只是它的名称部分

<input type="text" name="name" placeholder="name" value="<?php echo $name;?>"><br><br>

这就是我存储值名称的方式,还有其他名称,但它们工作正常,只是名称有问题

function getPosts()
{
    $posts = array();
    $posts[4] = $_POST['name'];
    return $posts;
}

【问题讨论】:

    标签: php html mysqli


    【解决方案1】:

    如果name 类型为VARCHAR,则必须将字符串放入其中,而不是整数。尝试将SET `name`=$data[4] 更改为SET `name`='".$data[4]."'

    【讨论】:

    • 工作就像一个魅力我不知道你需要两个' ' " "。我最初以 name='$data[4]' 的身份尝试过,不过现在可以使用了。
    猜你喜欢
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多