【发布时间】:2014-01-24 02:18:40
【问题描述】:
好的,我有一个插入语句运行良好,一个删除语句正在运行。 然而 UPDATE 已经一天多没有出现了,也看不到问题,我认为唯一可能是 MySQL 中的日期时间本地字段,但它适用于插入。
表格
$Band_id = (int)$_GET['id'];
$result = mysql_query("SELECT * FROM bands where Band_id ='$Band_id'");
$row = mysql_fetch_array($result);
?>
<form method="post" action="ammenddetails.php">
<input type="hidden" name="id" value="<? echo "$row[Band_id]"?>">
<tr><td>Band Name</td></br>
<td><input type="text" name="Name" size="20" value="<? echo "$row[Name]"?>"></td></tr></br>
<tr><tr><td>Show Name</td></br>
<td><input type="text" name="show" size="20" value="<? echo "$row[show]"?>"></td></tr></br>
<tr><td>Venue</td></br>
<td><input type="text" name="Venue" size="20" value="<? echo "$row[Venue]"?>"></td></tr></br>
<tr><td>Category</td></br>
<td><input type="text" name="Category" size="20" value="<? echo "$row[Category]"?>"></td></tr></br>
<tr><td>Date and Time</td></br>
<td><input type="datetime-local" name="time" size="20" value="<? echo "$row[time]"?>"></td></tr></br>
<tr><td>Price</td></br>
<td><input type="number" name="price" size="20" value="<? echo "$row[price]"?>"></td></tr></br>
<tr><td>Stock</td></br>
<td><input type="number" name="Stock" size="20" value="<? echo "$row[Stock]"?>"></td></tr></br>
<tr><td>Infomation</td></br>
<?php echo "<td><textarea name= 'infomation' cols=\"50\" rows=\"8\" >" .$row['infomation']. "</textarea></td>";?></tr></br>
<tr><input type="submit"name="submit value" value="Update"></td>
</tr>
</form>
ammenddetails.php
<?php
require 'core/init.php';
$Name = mysql_real_escape_string($_POST["Name"]);
$show = mysql_real_escape_string($_POST["show"]);
$Venue = mysql_real_escape_string($_POST["Venue"]);
$Category = mysql_real_escape_string($_POST["Category"]);
$price = mysql_real_escape_string($_POST["price"]);
$Stock = mysql_real_escape_string($_POST["Stock"]);
$time = mysql_real_escape_string($_POST["time"]);
$infomation = mysql_real_escape_string($_POST["infomation"]);
$Band_id = (int)$_POST['id'];
$result = mysql_query("UPDATE `bands`
SET `Name`=`$Name`,
`show`=`$show`,
`Venue`=`$Venue`,
`Category`=`$Category`,
`price`=`$price`,
`Stock`=`$Stock`,
`time`=`$time`,
`infomation`=`$infomation`
WHERE
`Band_id`=`$Band_id`");
echo "UPDATE `bands`
SET `Name`=`$Name`,
`show`=`$show`,
`Venue`=`$Venue`,
`Category`=`$Category`,
`price`=`$price`,
`Stock`=`$Stock`,
`time`=`$time`,
`infomation`=`$infomation`
WHERE
`Band_id`=`$Band_id`"
// header("location:admin.php");
?>
查询的回显显示为:
UPDATE `bands` SET `Name`=`Coldplay`, `show`=`Time of you life`, `Venue`=`London Wembley `, `Category`=`Rock`, `price`=`2`, `Stock`=`20`, `time`=`2014-01-23T01:59`, `infomation`=`info here test` WHERE `Band_id`=`3`
已经尝试过建议查询现在输出:
UPDATE `bands` SET SET `Name`='Killers', `show`='Big Time High', `Venue`='London Apolo', `Category`='Rock', `price`='45', `Stock`='75', `time`='', `infomation`='BLOB values are trea' WHERE `Band_id`='1'
所以查询得到了正确的数据,只是没有更新 bd
【问题讨论】:
-
使用反引号转义表名和列名。使用引号限制字符串。
-
感谢您提供的信息,我将尝试实施。
-
mysql_query是一个过时的接口,不应在新应用程序中使用,并将在未来的 PHP 版本中删除。像PDO is not hard to learn 这样的现代替代品。如果您是 PHP 新手,PHP The Right Way 之类的指南可以提供帮助。虽然你已经小心翼翼地在这里正确地逃脱了事情,但你离灾难只有一个错误。占位符值提供了额外的安全层。 -
太棒了,前几天我订购了一本关于现代 PDO 博士的书,正在等待亚马逊发货。
标签: php mysql sql-update