我只是在通过php表单进程更新数据库时遇到了一些麻烦,到目前为止我已经尝试了各种各样的东西以使其正常工作但无济于事,所有页面似乎都在工作,除了_process .php本身;
<?php
/*saves the form data to the database */
//read data passed via form
$cabinID = $_POST['txtcabinID'];
$cabintype = $_POST['txtCabinType'];
$cabindesc = $_POST['txtCabinDesc'];
$pricepern= $_POST['txtppN'];
$priceperw = $_POST['txtppW'];
$photo = $_POST['txtPhoto'];
//connect to server and database
include 'sqldb_connect.inc.php';
//set up query
$query = "update tblCabins set
cabinType='$cabintype'
cabinDescription='$cabindesc',
pricePerNight='$pricepern',
pricePerWeek='$priceperw',
PHOTO='$photo',
where cabinID ='$cabinID'"; // important
//execute query
$result = mysql_query($query);
if(!$result)
{
mysql_close();
exit("Query failed");
}
mysql_close();
exit ("Cabin updated successfully");
?>
</body>
</html>
任何人都可以在页面中看到任何突出的问题吗? 欣赏它:)
答案 0 :(得分:1)
查询中缺少逗号:
$query = "update tblCabins set
cabinType='$cabintype'
^
cabinDescription='$cabindesc',
pricePerNight='$pricepern',
pricePerWeek='$priceperw',
PHOTO='$photo',
where cabinID ='$cabinID'";
试试,
$query = "update tblCabins set
cabinType='$cabintype',
cabinDescription='$cabindesc',
pricePerNight='$pricepern',
pricePerWeek='$priceperw',
PHOTO='$photo',
where cabinID ='$cabinID'";
答案 1 :(得分:1)
你错过了一个逗号和一个逗号太多:
(重写)
$query = "UPDATE tblCabins SET
cabinType='$cabintype',
cabinDescription='$cabindesc',
pricePerNight='$pricepern',
pricePerWeek='$priceperw',
PHOTO='$photo'
WHERE cabinID ='$cabinID'"; // important
cabinType='$cabintype'
后遗失一个,PHOTO='$photo',
错误报告:
将错误报告添加到文件顶部,这将有助于生产测试。
error_reporting(E_ALL);
ini_set('display_errors', 1);
<强>脚注:强>
您目前的代码向SQL injection开放。使用prepared statements或PDO。
mysql_*
函数弃用通知:
http://www.php.net/manual/en/intro.mysql.php
从PHP 5.5.0开始,不推荐使用此扩展,不建议用于编写新代码,因为将来会删除它。相反,应使用mysqli或PDO_MySQL扩展名。在选择MySQL API时,另请参阅MySQL API Overview以获得进一步的帮助。
这些功能允许您访问MySQL数据库服务器。有关MySQL的更多信息,请访问»http://www.mysql.com/。
可以在»http://dev.mysql.com/doc/找到MySQL的文档。
答案 2 :(得分:1)
cabinType='$cabintype'
cabinDescription='$cabindesc',
你错过了一个逗号。应该是
cabinType='$cabintype',
cabinDescription='$cabindesc',
另外,只需注意,一旦您开始对mysql_query感到满意,我建议您将STRAIGHT跳过PDO并使用预准备语句。它使您的SQL更容易阅读,更安全:)