php mysql更新表使用不起作用的变量

时间:2016-04-10 08:47:33

标签: php mysql

我有一个表格上的数据从表格中回显,我想使用这些数据来更新另一个表格中的信息。每当我点击更新按钮时都显示错误,"无法更新数据:查询为空",这是更新代码,请帮帮我。

  <?php
     if(isset($_POST['submit'])) {
        $dbhost = 'localhost';
        $dbuser = 'root';
        $dbpass = '';

        $conn = mysql_connect($dbhost, $dbuser, $dbpass);

        if(! $conn ) {
           die('Could not connect: ' . mysql_error());
        }

        $ItemId = $_POST['ItemId'];
        $Quantity = $_POST['Quantity'];

       //$sql = "UPDATE stationery ". "SET Quantity = $Quantity ". "WHERE ItemId = $ItemId" ;
        $sql = mysql_query("UPDATE stationery set Quantity = ". $Quantity ." WHERE ItemId = '".$ItemId."'");
       //$sql=mysql_query("UPDATE stationery SET Quantity = ".mysql_real_escape_string($Quantity)." WHERE IltemId = '".mysql_real_escape_string($ItemId)."'");
        mysql_select_db('dbtest');
        $retval = mysql_query( $sql, $conn );

        if(! $retval ) {
           die('Could not update data: ' . mysql_error());
        }
        echo "Updated data successfully\n";

        mysql_close($conn);
     }
  ?>

这是从mysql表中回显数据的表

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("dbtest", $con);

 $result = mysql_query ("SELECT * FROM stationery");
echo "<table border = '1' style='margin-left:18px;margin-right:18px;'bgcolor='#CFC'>
  <tr><th bgcolor='#34495E' colspan='9'>
   <h1><font color='white' align='center'>&nbsp&nbsp&nbspORDER OFFICE SUPPLIES</font></h1>
</th></tr>
<tr bgcolor='#CFC' font size='18'>
<th>Item Name</th>
<th>Item Id</th>
<th>Quantity</th>
</tr>";

 while ($row = mysql_fetch_array($result))
 {
    echo "<form action=\"\" method=\"post\" enctype=\"multipart/form-data\">";
    echo "<tr>";
    echo "<td><input type=\"text\" name=\"ItemName\"  size=\"30\" value=\" ". $row ['ItemName'] . "\" readonly></td>";
    echo "<td><input type=\"text\" name=\"ItemId\" value=\" ". $row ['ItemId'] . "\" readonly></td>";
   echo "<td><input type=\"text\" name=\"Quantity\" required></td>";
   echo "<td><input type=\"submit\" name=\"submit\" size=\"30\" style='background-color:#3366FF' value=\"Update  \"></td>";

 echo "</tr>";
   echo "</form>";
  }
  echo "</table>";


  mysql_close($con);

 ?>

2 个答案:

答案 0 :(得分:0)

更改此行:

$sql = mysql_query("UPDATE stationery set Quantity = ". $Quantity ." WHERE ItemId = '".$ItemId."'");

要:

$sql = "UPDATE stationery set Quantity = '". $Quantity ."' WHERE ItemId = '".$ItemId."'";

完整代码:

<?php 
    $dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';

$conn = mysql_connect($dbhost, $dbuser, $dbpass);

if(! $conn ) {
   die('Could not connect: ' . mysql_error());
}

$ItemId = $_POST['ItemId'];
$Quantity = $_POST['Quantity'];

$sql = "UPDATE stationery set Quantity = '". $Quantity ."' WHERE ItemId = '".$ItemId."'";;

mysql_select_db('test');
$retval = mysql_query( $sql, $conn );

if(! $retval ) {
   die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";

mysql_close($conn);
?>

答案 1 :(得分:0)

对PHP变量使用单引号,为SQL相关名称使用返回标记:

$sql = mysql_query("UPDATE `stationery` set `Quantity` = '$Quantity' WHERE `ItemId` = '$ItemId'");