Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我的值没有更新?_Php_Mysql_Set_Sql Update_Where - Fatal编程技术网

Php 为什么我的值没有更新?

Php 为什么我的值没有更新?,php,mysql,set,sql-update,where,Php,Mysql,Set,Sql Update,Where,我有一个简单的、不安全的本地数据库,我正在使用它学习(是的,现在仍在使用MySQL),我可以在表中查看我的数据库行,然后单击编辑按钮,然后在文本框中显示每个列所选的单个记录,以进行更新和保存。这是我的编辑页面 <?php $id = $_GET['id']; $connect = mysql_connect("localhost", "XXXXXX", "XXXXXXX") or die ("Check your connection."); mysql_select_db("toner"

我有一个简单的、不安全的本地数据库,我正在使用它学习(是的,现在仍在使用MySQL),我可以在表中查看我的数据库行,然后单击编辑按钮,然后在文本框中显示每个列所选的单个记录,以进行更新和保存。这是我的编辑页面

<?php
$id = $_GET['id'];
$connect = mysql_connect("localhost", "XXXXXX", "XXXXXXX") or
die ("Check your connection.");
mysql_select_db("toner");
$quey1="select * from inventory where id ='".$id."'";
$result=mysql_query($quey1) or die(mysql_error());
?>
<html>
<form action="updateinfo.php" method="post">
<table>
<?php
while ($row=mysql_fetch_array($result))
{
?>
<tr>
  <td align="right">Partnumber:</td>
  <td align="left"><input type="text" name="partnumber" value="<?php echo $row['partnumber'];?>"/></td>
</tr> 
<tr>
  <td align="right">Description:</td>
  <td align="left"><input type="text" name="description" value="<?php echo $row['description'];?>"/></td>
</tr> 
<tr>
  <td align="right">Vendor:</td>
  <td align="left"><input type="text" name="vendor" value="<?php echo $row['vendor'];?>"/></td>
</tr> 
<tr>
  <td align="right">Price:</td>
  <td align="left"><input type="text" name="price" value="<?php echo $row['price'];?>"/></td>
</tr> 
<tr>
  <td align="right">Quantity:</td>
  <td align="left"><input type="text" name="quantity" value="<?php echo $row['quantity'];?>"/></td>
</tr> 
</table>
<br>
<input type="hidden" name="id" value="<?php echo $row['id'];?>"/>
<input type="submit" value="Edit/Update Toner">
<?php
 }
?> 
</form>
</html>

问题是因为
零件号
,您再次重置
零件号
,但新零件号不存在于数据库中,并且由于该查询不会更新新值

$sql = "UPDATE inventory SET description ='".$description."',vendor ='".$vendor."',price ='".$price."',quantity ='".$quantity."' WHERE partnumber = '".$partnumber."'";
解决方案


不要再次设置
零件号
仅在where子句中使用它。

学习使用MySQLi或PDO和准备好的语句,不要使用不太常见的错误做法和过时的扩展。您是否将值填充到表单字段中?为什么要使用while循环来保留单个值?
(是的,现在仍然使用MySQL)
使用MySQL没有什么错。如果数据库是小型或中型的,我会说使用MySQL是一种很好的做法。为此,在where子句中使用
inventory
表的主键。大多数主键都设置在id列上。@DrewG将其与主键一起使用,就像这样
@DrewG您将id作为get参数发送,所以使用
$id=$\u get['id']
而不是
$id=$\u POST['id']
@DrewG使用一个隐藏字段存储id

$sql = "UPDATE inventory SET description ='".$description."',vendor ='".$vendor."',price ='".$price."',quantity ='".$quantity."' WHERE partnumber = '".$partnumber."'";