gpt4 book ai didi

PHP和mysql更新语句

转载 作者:行者123 更新时间:2023-11-29 01:47:02 26 4
gpt4 key购买 nike

我正在尝试创建一个代码来更新表中我的一行中的一些值。该代码有效,但没有我想要的那么好。它会更改行的所有值,而不是只更改我想更改的值。例如,如果我试图通过填写表格中的价格字段并将其余部分留空来更改其中一件商品的价格。但是它不是只更新价格,而是用空白值更新整个表格,这意味着表格中的所有信息将会消失,我只想更改价格。如何解决这个问题?谢谢这是我的代码:

include("misc.inc");
$id = $_GET['id'];
$db = 0;
$db = mysql_connect($db_host . ":" . $db_port, $db_user, $db_pwd);
if ($db == 0) {die("Cannot connect, Error <b>" . mysql_errno() . "</b>: " . mysql_error());};
echo "Database connection has been established successfully<br />\n";
mysql_query("USE " . $db_db);
if (mysql_errno() != 0) {die("Cannot USE database, Error <b>" . mysql_errno() . "</b>: " . mysql_error());};
echo "Database has been selected successfully<br />\n";

if (isset($_POST['submit'])):

$itemName = $_POST ['itemName'];
$item_Description = $_POST ['item_Description'];
$price = $_POST ['price'];
$contactName = $_POST ['contactName'];
$phone = $_POST ['phone'];
$email = $_POST ['email'];
$website =$_POST ['website'];

$sql = "UPDATE items SET
itemName = '$itemName',
email = '$email',
item_description ='$item_Description',
price = '$price',
contactName = '$contactName',
phone ='$phone',
website ='$website'
WHERE items.itemID='$id'";

if (@mysql_query($sql)) {
echo('<p>Item editted successfully!</p>');
} else {
echo('<p>Error editting item!<br />'.
'Error <b>' . mysql_errno() . '</b>'. mysql_error() . '</p>');
}
?>
<p><a href="<? $_SERVER['PHP_SELF']?>" method = "POST"></a></p>
<p><a href="items.php">Return to Front Page</a></p>
</ul>

最佳答案

有四个选项(好的,也许更多 ;-) )

  1. 用数据库记录的当前值填充所有空变量。这样,未更改的字段会有效地将字段更新为相同的值
  2. 同上,但将当前值放入表单中。然后您可以选择修改值或明确清除它们
  3. 构建特定查询,仅更新您要更改的字段。仅更新语句的 SET 子句中包含的字段。
  4. 使用触发器来防止值更新为 null。让它使用当前值。这似乎是 1 和 2 中的解决方案,但优点是当多个人正在编辑同一条记录时,您不会覆盖其他人的值。

我会选择 2 或 3。

  • 2 因为它允许您编辑或清除字段。
  • 3 因为它让您只更新相关字段。您可以轻松检测是否进行了任何更改,如果没有,则完全跳过更新。

关于PHP和mysql更新语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4371671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com