【问题标题】:My database isn't getting updated after submission [closed]提交后我的数据库没有更新[关闭]
【发布时间】:2015-01-20 15:24:11
【问题描述】:

打开此页面时,必须显示多个表单。每个表单都是针对特定员工的,用户决定要分配给哪个员工的时间段,选择时间,单击提交,然后使用新值更新数据库并再次显示表单,除了数据库之外一切正常没有得到更新。 这是我认为您需要查看的代码部分:

<?php
ini_set('display_errors',1); 
 error_reporting(E_ALL);
// Start database connection
include ('connection.php');
session_start();
// Write QUERY                  
                    if ( isSet($_POST['Time_in'], $_POST['Time_out'], $_POST['Spec_ID']  ) ) {
                    $qry="UPDATE 'Specialist' SET 'Time_in' = '".$_POST['Time_in']."' ,  Time_out = '".$_POST['Time_out']."'  WHERE Spec_ID ='".$_POST['Spec_ID']."';";
                    $result = mysql_query ($qry);
                        $qry = 'SELECT * FROM Specialist' ;
                    }
                else

                        $qry = 'SELECT * FROM Specialist' ;
                    //Run QUERY
                    $result = mysql_query ($qry);       
?>


<!DOCTYPE html>
<html lang="en">

<head>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>Assign to time slot</title>

</head>

<body scroll="no" style="overflow: hidden">

<div class="wrapper">

    <div class="logo"><a href="adminpage.html"><img src="logo.png"  alt="logo" height="162px"width="800px"  style="border-style:none" title="Home"/></a></div>



                    <?php


if($result) {
$did = 0;
Print " <table style='width:100%'>";

while($info=mysql_fetch_array($result))
{
if($did==0){
Print "<form  method='POST' enctype='multipart/form-data' style='display:inline;' >

<tr>
     <td><figure style='text-align:centre;'>
  <img STYLE='border: thin solid grey;left:00px;top:00px;'src='img/idimg.jpg' alt='idimage' width='110' height='110'>
  <figcaption>".$info['Spec_Name']."<br/>".$info['Spec_ID']."<br/>".$info['Specialty']. "</br>  

  From: <select name='Time_in'>
  <option disabled selected> unspecified </option>
  <option value='08:00'>08:00AM</option>
  <option  value='09:00'>09:00AM</option>
  <option  value='10:00'>10:00AM</option>
  <option  value='11:00'>11:00AM</option>
  <option  value='12:00'>12:00AM</option>
    <option value='02:00'>02:00PM</option>
  <option value='04:00'>04:00PM</option>
  <option  value='05:00'>05:00PM</option>
</select>


 TO: <select name='Time_out'>
    <option disabled selected> unspecified </option>
  <option value='08:00'>08:00PM</option>
  <option value='09:00'>09:00PM</option>
  <option value='10:00'>10:00PM</option>
  <option value='11:00'>11:00PM</option>
  <option value='12:00'>12:00PM</option>
    <option value='02:00'>02:00PM</option>
  <option value='04:00'>04:00PM</option>
  <option value='05:00'>05:00PM</option>
</select>

<input type='hidden' name='Spec_ID' value='".$info['Spec_ID']."' />
<input name='Submit' type='submit' value='Assign' /> 
  </br></br></br></figcaption>
</figure></td> </form>";

$did++;
continue; }



if($did==1){

Print "<form  method='POST' enctype='multipart/form-data' style='display:inline;'  >


     <td><figure style='text-align:centre;'>
  <img STYLE='border: thin solid grey;left:00px;top:00px;'src='img/idimg.jpg' alt='idimage' width='110' height='110'>
  <figcaption>".$info['Spec_Name']."<br/>".$info['Spec_ID']."<br/>".$info['Specialty']. "</br>  

  From: <select name='Time_in'>
    <option disabled selected> unspecified </option>
  <option value='08:00'>08:00AM</option>
  <option value='09:00'>09:00AM</option>
  <option value='10:00'>10:00AM</option>
  <option value='11:00'>11:00AM</option>
  <option value='12:00'>12:00AM</option>
    <option value='02:00'>02:00PM</option>
  <option value='04:00'>04:00PM</option>
  <option value='05:00'>05:00PM</option>
</select>


 TO: <select name='Time_out'>
  <option disabled selected> unspecified </option>
  <option value='08:00'>08:00PM</option>
  <option value='09:00'>09:00PM</option>
  <option value='10:00'>10:00PM</option>
  <option value='11:00'>11:00PM</option>
  <option value='12:00'>12:00PM</option>
  <option value='02:00'>02:00PM</option>
  <option value='04:00'>04:00PM</option>
  <option value='05:00'>05:00PM</option>
</select>

<input type='hidden' name='Spec_ID' value='".$info['Spec_ID']."' />
<input name='Submit' type='submit' value='Assign' /> </br></br></br></figcaption>
</figure></td></tr> </form>";
$did--;

}
}
Print " </table>";

}

else echo "There are no specialists";

    ?>



</div>
    <!-- /.container -->

</div>
</body>
</html>


<?php 
// close database connection
MYSQL_CLOSE ($con);
?>

当我在 phpmyadmin 中尝试此查询以更新它的值时!但不在我的代码中

【问题讨论】:

  • 您在表名和列名周围使用单引号(而不是反引号,但您根本不需要引号)。我认为这是一个印刷错误并投票结束此类问题。

标签: php mysql sql database web


【解决方案1】:
UPDATE 'Specialist' SET 'Time_in'
       ^          ^

表名不能放在引号内。这是您的查询失败的主要原因。您也没有检查查询执行的结果。

还有:How can I prevent SQL injection in PHP?

【讨论】:

  • 你提到的问号在哪里?你能解释一下吗
  • 引号,不是问号。我刚刚更新了答案以提及哪些。
  • 我必须使用 pdo 吗?我真的不明白 pdo 是什么
  • 你可以使用mysqli_*,它与mysql_*非常相似。是的,我认为您应该花几个小时来学习这些内容,而不是学习使用已弃用的不安全 API。但是,我提到的解决方案并不强迫您使用这些解决方案。只要查询中没有其他错误,它仍然可以与您当前的 mysql_query 调用一起使用。
  • @user3419062:是的。你所拥有的是危险的。您可以通过 Google 搜索找到有关 PDO 的各种信息。这并不难,从长远来看对你有好处。
猜你喜欢
  • 2021-09-20
  • 2018-11-19
  • 2018-04-01
  • 1970-01-01
  • 2016-12-01
  • 2012-03-02
  • 2015-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多