更新数据库PHP/mysql[nob]时遇到问题


Having trouble updating a database PHP/mysql [noob]

我只是在通过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>

有人能看到页面中突出的问题吗?感谢:(

查询中缺少逗号:

 $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'"; 
cabinType='$cabintype' 
        cabinDescription='$cabindesc',

你少了一个逗号。应该是

 cabinType='$cabintype',
        cabinDescription='$cabindesc',

另外,请注意,一旦您开始对mysql_query感到满意,我建议您跳过直接进入PDO并使用准备好的语句。它使SQL更容易阅读,也更安全:(

您缺少一个逗号,一个逗号太多:

(重写(

$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);
  • http://php.net/manual/en/function.error-reporting.php
  • http://www.php.net/manual/en/function.mysql-error.php

脚注:

您当前的代码对SQL注入是开放的。使用准备好的语句PDO

mysql_*功能弃用通知:

http://www.php.net/manual/en/intro.mysql.php

从PHP 5.5.0开始,该扩展已被弃用,不建议用于编写新代码,因为它将来会被删除。相反,应该使用mysqliPDO_MySQL扩展。另请参阅MySQL API概述以获取选择MySQL API时的进一步帮助。

这些函数允许您访问MySQL数据库服务器。有关MySQL的更多信息,请访问»http://www.mysql.com/.

MySQL文档可在»http://dev.mysql.com/doc/.