sql update语句其中2个条件apllies

时间:2015-07-26 18:42:24

标签: php mysql sql-update

这是一个非常基本的问题,但是没有找到那么多的在线支持。 我需要在mysql中使用一个简单的更新语句(我知道我应该使用mysqli但尚未准备好进行此更新)

鉴于我正在使用由固定数量的项目组成的数据库,我希望只有当两个条件一起为真时才更新apllies。

我的想法就像是

Bitmap copy;
using (DataStream stream = Surface.ToStream(surface, ImageFileFormat.Bmp))
{
    Bitmap orig = new Bitmap(stream);
    copy = new Bitmap(orig);
}

// Able to use copy after stream is disposed

这是选择要更新的记录的正确方法吗?

非常感谢 马努

2 个答案:

答案 0 :(得分:3)

这就是你或多或少的方式,这是一个精致的:

$sql ="update `members` set `description`=? WHERE `id`='1' AND `fruit` = 'banana'";

1)看看我怎么把?而不是阵列? PHP中有智能对象(阅读“准备语句”),它允许您在查询中放置一个参数“spot”,后来有一个值而不是它。这使您的查询更加安全。

2)我在你的专栏周围添加了'''。它不是强制性的,但它确保您的列不会被误认为是其他内容。

答案 1 :(得分:1)

是的,应该可行,但将数组值包装在括号中的字符串中更安全:

public static Map<String, Item> streamToOneToOne(Stream<Item> itemStream) {
    return itemStream.collect(toMap(Item::getUuid, Function.identity()));
}

在将其直接插入字符串之前,还要确保以某种方式过滤或验证$ description。 注意:最佳实践要求您对所有SQL关键字使用全部大写,以便更轻松地区分关键字和值。你的有一半半更新并设置小写; WHERE和AND大写,比全部小写更糟糕。

[edit]我同意Daniel Saad你也应该在这里使用准备好的陈述。