如何使用更新语句更新数据库值


How do I update the database values using update statement?

我正在尝试将'company_name', 'company_add', 'price'更新为主键'id'但它向我显示一条'something went wrong'消息以及'undefined id'错误。 请帮帮我!

<?php
include('data_conn.php');
if(isset($_POST['sub']))
{
    $comname=$_POST['cname'];
    $comadd=$_POST['cadd'];
    $pri=$_POST['price'];
    $query ="UPDATE login SET company_name=$comname,company_add=$comadd,price=$pri WHERE id=$id";
    $result = mysql_query($query);
    echo $result;
    if(!$result)
    {
        echo '<script language="javascript">';
        echo 'alert("something went Wrong...:("); location.href="edit.php"';
        echo '</script>';
    }else{
        echo '<script language="javascript">';
        echo 'alert("successfully updated!!!"); location.href="edit.php"';
        echo '</script>';
    }
}
?>

您可以使用以下方法来避免 sql 注入,而不是使用直接替换值。

您基本上有两种选择来实现此目的:

  1. 使用 PDO(对于任何受支持的数据库驱动程序):

    $stmt = $pdo->prepare('从员工中选择 * 其中名称 = :name');$stmt->execute(array('name' => $name));foreach ($stmt as $row) {    用$row做点什么}
  2. 使用 MySQLi(用于 MySQL):

    $stmt = $dbConnection->准备('从员工中选择 * 其中姓名 = ?');$stmt->bind_param('s', $name);$stmt->执行();$result = $stmt->get_result();而 ($row = $result->fetch_assoc()) {    用$row做点什么}

请参考 如何防止 PHP 中的 SQL 注入?

您必须将字符值放在单引号中:

$query ="UPDATE login SET company_name='$comname',company_add='$comadd',price=$pri WHERE id=$id";

停止使用已弃用的 mysql_* API。将mysqli_*PDO与准备好的语句一起使用。至少使用错误函数来获取错误消息。