Php未更新
我是编程新手,但我相信有一个简单的解决方案: 当我尝试使用这段代码时,我没有收到任何错误,但是数据库没有更新。 我连接到数据库没有问题。我也尝试过引用的变体。更新代码在phpmyadmin中工作,但不在页面上。 我试图在提交时更新表格中输入的信息Php未更新,php,mysql,Php,Mysql,我是编程新手,但我相信有一个简单的解决方案: 当我尝试使用这段代码时,我没有收到任何错误,但是数据库没有更新。 我连接到数据库没有问题。我也尝试过引用的变体。更新代码在phpmyadmin中工作,但不在页面上。 我试图在提交时更新表格中输入的信息 <?php if(isset($_POST['submit'])){ $dbhost = 'localhost'; $dbuser = 'dbuser'; $dbpass = 'dbpass'; $
<?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>
标题
连接后必须选择数据库。
使用mysql\u查询执行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);
?>
这应该可以做到。部分功劳归于@Nigel Ren,他指出您忘记执行查询,应该使用mysqli或PDO 还要注意使用prepared语句和参数绑定,这会阻止最终用户发布一些讨厌的sql,这些sql将通过$mon_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>
标题
我的数据库是数据库还是表?因为如果它是数据库,则不能直接更新数据库。UPDATE语句仅适用于表。您不执行查询()。您应该尝试更新mysqli_uu或PDO,因为mysqli_u在较新版本的PHP中不受支持。mysql_uclose()
在您的if
之外调用,因此即使连接未打开,也可能被调用。1。不要使用不推荐使用且不安全的mysql.*
-函数。自PHP5.5(2013年)起,它们就被弃用,并在PHP7(2015年)中被完全删除。改用MySQLi或PDO。2.如果您使用上面提到的MySQLi或PDO,您就可以使用它。如果mon\u am
是一个字符串,您需要将内容包含在引号中(`mon\u am`='$mon\u am'
),尽管如前所述,查看准备好的语句,因为这样可以避免许多其他潜在问题。