【发布时间】: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' 不存在不知道为什么它用 .介于两者之间。