【问题标题】:Update a MySQL database field data with HTML form and PHP使用 HTML 表单和 PHP 更新 MySQL 数据库字段数据
【发布时间】:2014-05-08 01:58:19
【问题描述】:

所以我正在尝试使用 html 表单和一些 PHP 代码更新数据库字段,但我无法让它工作,它不会引发错误但不会更新字段?我不确定它是否因为我也在回显网页上的那个字段?它似乎所做的只是打印失败消息。

HTML:

<html>
    <form method="post" name="update" action="updateform.php" />

    Description:

    <input type="text"  name="description" />

            <input type="submit" name="Submit" Value="update" />
    </form>

    </html>

PHP:

<?php 
mysql_connect("localhost", "root", "*****") or die("Connection Failed"); 
mysql_select_db("Days")or die("Connection Failed"); 
$description = $_POST['description']; 
$query = "UPDATE test SET description = '$description' ";
if(mysql_query($query)){ echo "updated";} else{ echo "fail";} ?> 

我的回声(工作):

             <?php
include("include/session.php");
//connect to the server
$connect = mysql_connect("localhost","root","*****");

//connect to the database
mysql_select_db("days");

//query the database
$query = mysql_query("SELECT * FROM hobby WHERE id = '1' ");

//ferch the results / convert results into an array

    WHILE($rows = mysql_fetch_array($query)):

        $description = $rows['description'];

    echo "<div style ='font:15px/21px Arial,tahoma,sans-serif;color:#cf5c3f     </h>'>$description";
    endwhile;






?>

【问题讨论】:

  • 它可能确实会引发错误。你只是没有在寻找它。使用 mysql_error() 查看你的 sql 错误。仅供参考,您对SQL injections 敞开心扉
  • 您的UPDATE 声明不需要WHERE 吗?
  • 试试:$res = mysql_query($query) or die("error: ".mysql_error());
  • 这是执行 SQL 查询的一种非常不安全的方式,请改用 PDO (nl1.php.net/manual/en/class.pdo.php)。如果您的更新查询有效,它将更新 所有 行而不是仅更新一个。使用WHERE 语句仅更新您要选择的行。
  • 我的代码好像有问题?错误:表 'days.days' 不存在不知道为什么它用 .介于两者之间。

标签: php html sql


【解决方案1】:
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value

更新查询示例,但我没有得到你的 sql ..你错过了你的 where 子句

【讨论】:

  • 如果哪里丢失,它会更新所有行,不是吗?
  • 始终需要 where 子句,如果要更新所有行,可以使用 WHERE 1=1
  • 我编辑了我的代码,似乎我错过了 WHERE 语句,但我仍然收到错误:表 'days.days' 不存在,我不确定为什么它重复天并添加一个 .
  • 是的,但如果'where'丢失,它会抛出任何错误吗??
  • @Matt 从什么时候开始更新所有行时需要WHERE 语句? (我很感兴趣,不是讽刺。)
【解决方案2】:

每当您尝试将某些内容更新到表时,您都需要使用WHERE 条件。

这是我的代码:

test.html

<html>
<form method="post" action="updateform.php" />

Name : <input type="text"  name="name" /> </br>

<input type="submit" name="Submit" value="update" />

</form>
</html>

updateform.php

<?php 
$name = $_POST['name'];
$connection = mysqli_connect("localhost", "root", "Enter Passwd Here","Enter db_name here"); 
if(mysqli_connect_errno())
{
    echo "failed to connect " . mysqli_connect_error();
}

if(isset($_POST['Submit'])) 
{
    $query = "UPDATE `test_table` SET `name` = '$name' WHERE `cost` = 500"; 
    $result = mysqli_query($connection,$query); 

    if (!$result) {
    die('Error' . mysqli_error($connection));
    }
    else
    {
    echo "Successfully updated";
    }
}
?>

为了证明我已经创建了一个数据库和表test_table,其中包含 3 个字段。 (身份证,姓名,费用)

这是我的表格的结构:



在执行上述脚本之前,我们的表中包含这些数据

执行脚本后,第二行的名称ramu变为shiva,因为我们在WHERE条件中将cost指定为500。

$query = "UPDATE `test_table` SET `name` = '$name' WHERE `cost` = 500";


【讨论】:

    猜你喜欢
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    相关资源
    最近更新 更多