【问题标题】:Editing fields in a table from php [duplicate]从php编辑表中的字段[重复]
【发布时间】:2014-09-21 22:44:59
【问题描述】:

下午好,希望你能帮助我,我需要更新一整列的值,我有一个名为“img”的列,其中有:

../img/user/000001.jpg 

我想修改一下,只剩下:

000001.jpg 

用户更新我占用这段代码:

<?php
include("config.php");
mysql_query("UPDATE images SET user = 'new_user' WHERE user = 'user'");
mysql_close($conexion);
?>

但是现在我觉得需要更新图片的路径,但它们都超过5000,我想用php来做以节省时间。

我只需要删除“img”列的前 12 个字符,因为我可以用 php 做到这一点?

非常感谢您。

【问题讨论】:

  • 它们全部都以../img/user/开头?您可以在UPDATE 语句中轻松调用REPLACE(img, '../img/user/', '') 将字符串替换为空字符串
  • 顺便说一下,在 PHP 中执行此操作并不能节省时间 :) 如果您想对数据库执行一次性操作,最好使用 MySQL 客户端执行此操作而不是围绕它编写 PHP 代码。
  • @MichaelBerkowski 超过 5000 个字段以相同的字符串 "../img/user/" 开头可能会帮助我使用最终代码来保存一个 php 并从浏览器中以相同的方式运行它我如何更新名称用户?非常感谢。

标签: php mysql


【解决方案1】:

PHP 不是必需的,它可以在纯 SQL 中完成

UPDATE images SET img = SUBSTRING(img, 13, LENGTH(img) - 12)
WHERE SUBSTRING(img, 1, 12) = '../img/user/'

【讨论】:

  • 错误查询 SQL: UPDATE images SET img = SUBSTRING(img, 12, LEN(img)) MySQL ha dicho: Documentación #1305 - FUNCTION db_i.LEN 不存在
  • 我需要的是删除前12个字符,但是图片的名称是这样的,否则index.php的代码不起作用,问候。
  • @altoca 此查询将删除前 12 个字符如果前 12 个字符是“../img/user/”。可以盲目地只删除前 12 个,但这种方式更安全。
  • 不再给我错误,但说“0”行受到影响,没有改变任何东西,看看我是否做得很好:我去 phpmyadmin,我选择数据库,然后是图像表,顶部选择 SQL,点击给我的代码并运行以继续,但没有任何反应。任何的想法?我哪里错了?
  • @altoca 你确定前十二个字符正好是../img/user/吗?从不大写,前面没有空格等?如果需要,您可以尝试使用 UPDATE images SET img = SUBSTRING(img, 13, LENGTH(img) - 12) 盲目地删除前 12 个字符,但请确保在此之前备份您的表或数据库。
猜你喜欢
  • 2023-04-07
  • 2021-06-12
  • 2017-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-22
  • 1970-01-01
相关资源
最近更新 更多