php未更新

xdnvmnnf  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(233)

我对编程很陌生,但我确信有一个简单的解决方案:当我尝试使用这段代码时,没有出现错误,但数据库没有更新。我连接到db没有问题。我也试过引语的变体。更新代码在phpmyadmin中工作,但不在页面上。我正试图在提交时更新表格中输入的信息

<?php
    if(isset($_POST['submit'])){
    $dbhost = 'localhost';
    $dbuser = 'dbuser';
    $dbpass = 'dbpass';
    $conn = mysql_connect($dbhost, $dbuser, $dbpass);

      $mon_am = $_POST['mon_am'];
       $sql = "UPDATE `mydatabase` 
       SET `mon_am` = $mon_am
      WHERE `id` = 1";
           } 
    mysql_close($conn);
?>

<!DOCTYPE html>
    <html>
    <head>
        <title>title</title>
    </head>
    <body>
        <form method="POST" action="mon_am.php">
            <input type="text" Name="mon_am">
            <input type="submit" name="submit">
    </form>
    </body>
    </html>
gj3fmq9x

gj3fmq9x1#

这应该能奏效。部分功劳归于@nigel ren,他指出了一个事实:您忘记执行查询,应该使用mysqli或pdo。
还要注意prepared语句和参数绑定的使用,它们阻止最终用户发布一些讨厌的sql,这些sql将通过$mon\u am变量注入到查询中。

<?php

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

  $dbhost = 'localhost';
  $dbuser = 'dbuser';
  $dbpass = 'dbpass';
  $dbname = 'YOURDBNAME'; //Change YOURDBNAME with the actual name of your database

  $conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

  $sql = 'UPDATE mydatabase SET mon_am = ? WHERE id = 1;' //mydatabase must be a table, not the actual database name !!
  $stmt = $conn->prepare($sql);
  $stmt->bind_param('s', $_POST['mon_am']); //First parameter defines the data type
  $stmt->execute();

  echo $stmt->affected_rows; // This is only to show if the data was updated. You can delete it once your code is working

  $stmt->close();
  $conn->close();
}

?>

<!DOCTYPE html>
<html>
<head>
    <title>title</title>
</head>
<body>
    <form method="POST" action="mon_am.php">
        <input type="text" Name="mon_am">
        <input type="submit" name="submit">
</form>
</body>
</html>
hzbexzde

hzbexzde2#

连接后必须选择数据库。使用mysql\u query执行sql。

<?php
    ...
    $conn = mysql_connect($dbhost, $dbuser, $dbpass);
    $selectDb = mysql_select_db("yourDatabaseName");
    $mon_am = $_POST['mon_am'];
    $sql = "UPDATE `yourTableName` SET `mon_am` = $mon_am WHERE `id` = 1";
    $query = mysql_query($sql);
    mysql_close($conn);
?>

相关问题