【发布时间】:2014-10-03 08:33:59
【问题描述】:
我会保持简短。我正在用 php 编写一个非常基本的代码,它将内容添加到 mysql db 中,但我遇到了编辑问题。这是我的表格:
if($idExists)
{
Print '
<form action="editIt.php" method="POST">
<div name="id"> '. $id . '</div>
Enter new detail: <input type="text" name="details"/><br/>
public post? <input type="checkbox" name="public[]" value="yes"/><br/>
<input type="submit" value="Update List"/>
</form>
';
}
这是我的editIt.php
//session start and stuff
if(filter_input(INPUT_SERVER, 'REQUEST_METHOD', FILTER_SANITIZE_STRING) == "POST")
{
echo "<script type='text/javascript'>alert('EDITIT!');</script>";
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("WebSiteDB") or die ("Cannot connect to database");
$id = $_POST['id'];
$details = mysql_real_escape_string($_POST['details']);
$time = strftime("%X");
$date = strftime("%B %d, %Y");
$isPublic = 'no';
foreach($_POST['public'] as $eachCheck)
{
if($eachCheck != NULL)
$isPublic = "yes";
}
mysql_query("UPDATE list SET details='$details', dateEdited='$date', timeEdited= '$time', public='$isPublic' WHERE id='$id'");
header("location: home.php");
}
我真的找不到这段代码的问题(这并不奇怪,我是网络方面的新手),但它只是转到 home.php 并且不会更改数据库中的数据。请帮我跳过这个障碍,这样我就可以继续我的生活了。
【问题讨论】:
-
您能否将您的查询行编辑为
mysql_query(...) or die(mysql_error());,以便我们查看抛出的错误消息? -
您应该避免使用
mysql_*,因为它已被弃用。你试过转储id吗?var_dump($id)?然后你可以检查是否有这样的 id 行,运行简单的 sqlSELECT * from list WHERE id =[your_id];