我想更新 mysql 表中的数据,如果列 store_url 值与列 site_url 完全相同,则列 title_modal 将被更新
Posted
技术标签:
【中文标题】我想更新 mysql 表中的数据,如果列 store_url 值与列 site_url 完全相同,则列 title_modal 将被更新【英文标题】:I want to update data in a mysql table where is Column title_modal will be updated if Column store_url value is exact equal to column site_url 【发布时间】:2021-10-18 13:02:49 【问题描述】:我有一个名为 "widget_cont"
的表和 3 个不同的列 "title_modal"
、"store_url"
和 "site_url"
。
我想更新列“title_modal”,其中“store_url”和“site_url”是相同的值,例如:“google.com”=“google.com” 但是,有多行具有相同类型的列,但值不同,例如:“facebookcom”=“facebook.com”。
我尝试过的是:
if(isset( $_POST['title_modal']) )
$title_modal = mysqli_real_escape_string($conn, $_POST['title_modal']);
if( isset($title_modal) )
$query_title_modal = "UPDATE widget_cont SET title_modal='$title_modal' WHERE store_url= 'site_url' ";
echo $_POST['title_modal'];
if( !mysqli_query($conn, $query_title_modal) )
echo "ERROR: " . mysqli_error($conn);
每次在错误的同一行中更新值。如果我将静态 URL 放在“site_url”列中,它就可以工作。 看起来解决方案很简单,但我还没有成功。有人可以帮忙吗?谢谢。
【问题讨论】:
【参考方案1】:store_url= 'site_url'
错了。由于引号,它将site_url
视为文字字符串,而不是列名。换句话说,它将尝试查找 store_url 列包含实际文本“site_url”的行。我猜您没有任何包含此类内容的行,显然这不是您的意图。
如果要更新这两列相等的所有行,请使用
store_url= site_url
不带引号。
【讨论】:
【参考方案2】:WHERE store_url= 'site_url'
将返回 store_url
是 字符串 'site_url'
的项目,很可能不会返回任何项目。去掉引号,替换
$query_title_modal = "UPDATE widget_cont SET title_modal='$title_modal' WHERE store_url= 'site_url' ";
与
$query_title_modal = "UPDATE widget_cont SET title_modal='$title_modal' WHERE store_url=site_url";
【讨论】:
以上是关于我想更新 mysql 表中的数据,如果列 store_url 值与列 site_url 完全相同,则列 title_modal 将被更新的主要内容,如果未能解决你的问题,请参考以下文章