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

标签 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);

 ?>

最佳答案

对 PHP 变量使用单引号,对与 SQL 相关的名称使用反引号:

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

关于php mysql更新表使用变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36527713/

相关文章:

mysql - 从表中删除语法

mysql - MySQL查询中已经使用了两张表,如何引用一张表?

mysql - 一个表中的 COLUMN NAME 和 COLUMN COMMENT 以及另一个表中的 COLUMN VALUE。如何?

php - css 和 JS 文件下载时间过长

php - 使用用户 ID 登录后重定向

php - 当变量内容发生变化时自动更新数据库

java - 使用 spring、hibernate 和 mysql 通过嵌套事务创建重复对象

php - htaccess 301 重定向 - 删除查询字符串

php - URL 打错 Controller LARAVEL

php - MySQL:通过if语句选择奇数行