我的提醒表与此类似:
|id |event_id |reminder |
|---|---------|--------------------|
|37 | 75 |2015-10-19 11:00:00 |
|38 | 75 |2015-10-22 10:45:00 |
|39 | 76 |2015-10-23 11:00:00 |
|40 | 76 |2015-10-24 11:30:00 |
列 id 上有一个主键。我需要更新提醒列,以便我获取其当前值,使用php函数进行一些转换并返回新值。因此,新值对于所有记录都不相同,但取决于其先前的值。
例如,这不起作用,但我喜欢这样的事情:
$sql = "UPDATE reminders r
SET r.reminder = '". my_function("r.reminder") ."' ";
我的问题是如何获取提醒列的当前值并转发到php函数作为参数。是否可以使用单个查询,以及如何?如果没有,最好的方法是什么?
我希望我不必将更新语句放在循环中并单独更新每一行,但我不确定。
答案 0 :(得分:0)
除非您可以在SQL中复制所需的函数,否则这不可能作为单个查询。最终,查询只是一个简单的字符串,无需PhP的任何进一步交互即可发送到数据库。
如果你必须在代码上运行PhP函数,你需要做这样的事情。
$qResult = $mysqli->query($sql);
$results = $qResult->fetch_all(MYSQLI_ASSOC);
foreach ($results as $result) {
$mysqli->query("UPDATE myTable SET someColumn = someNewValue WHERE id = " . $result['id'] . ";");
}
这些方面的东西。