sql 更新适用于 2 个条件的语句
sql update statement where 2 condition apllies
这是一个很基础的问题,但是网上没有找到那么多的支持。
我需要在 mysql 中使用一个简单的更新语句(我知道我应该使用 mysqli 但尚未准备好进行此更新)
鉴于我正在使用由固定数量的项目组成的数据库,我希望更新仅在两个条件都为真时才适用。
我的想法是
$sql ="update `members` set `description`='$description[$index]' WHERE id='1' AND fruit = 'banana'";
这是选择要更新的记录的正确方法吗?
非常感谢
马努
是的,应该可行,但将数组值包装在括号中的字符串中更安全:
$sql ="UPDATE `members` SET `description`='{$description[$index]}' WHERE id='1' AND fruit = 'banana'";
还要确保在将 $description 直接插入字符串之前以某种方式对其进行过滤或验证。
注意:最佳做法规定您对所有 SQL 关键字使用全部大写,以便更容易区分关键字和您的值。你的有一半更新和设置小写; WHERE 和 AND 大写,这比全部小写更糟糕。
[edit] 我同意 Daniel Saad 的观点,您也应该在这里使用准备好的语句。
这就是你或多或少的做法,这里有一个改进的:
$sql ="update `members` set `description`=? WHERE `id`='1' AND `fruit` = 'banana'";
1) 看我怎么把 ?而不是数组? PHP 中有一些智能对象(阅读有关 "Prepared Statements" 的内容),它允许您在查询中放置一个参数 "spot",然后用一个值代替它。这使您的查询更加安全。
2) 我在您的列周围添加了“`”。这不是强制性的,但可以确保您的列不会被误认为是其他东西。
这是一个很基础的问题,但是网上没有找到那么多的支持。 我需要在 mysql 中使用一个简单的更新语句(我知道我应该使用 mysqli 但尚未准备好进行此更新)
鉴于我正在使用由固定数量的项目组成的数据库,我希望更新仅在两个条件都为真时才适用。
我的想法是
$sql ="update `members` set `description`='$description[$index]' WHERE id='1' AND fruit = 'banana'";
这是选择要更新的记录的正确方法吗?
非常感谢 马努
是的,应该可行,但将数组值包装在括号中的字符串中更安全:
$sql ="UPDATE `members` SET `description`='{$description[$index]}' WHERE id='1' AND fruit = 'banana'";
还要确保在将 $description 直接插入字符串之前以某种方式对其进行过滤或验证。 注意:最佳做法规定您对所有 SQL 关键字使用全部大写,以便更容易区分关键字和您的值。你的有一半更新和设置小写; WHERE 和 AND 大写,这比全部小写更糟糕。
[edit] 我同意 Daniel Saad 的观点,您也应该在这里使用准备好的语句。
这就是你或多或少的做法,这里有一个改进的:
$sql ="update `members` set `description`=? WHERE `id`='1' AND `fruit` = 'banana'";
1) 看我怎么把 ?而不是数组? PHP 中有一些智能对象(阅读有关 "Prepared Statements" 的内容),它允许您在查询中放置一个参数 "spot",然后用一个值代替它。这使您的查询更加安全。
2) 我在您的列周围添加了“`”。这不是强制性的,但可以确保您的列不会被误认为是其他东西。