如何在MYSQL中查找和替换具有<>的字符串" '在数据库?

时间:2014-09-06 09:09:36

标签: php phpmyadmin mysql

我不是mysql的专家,但我需要找到并替换数据

<h2 class="ui-box-title">Product Description</h2>
   <div class="ui-box-body">
     <p> &nbsp; </p> <h2 style="padding: 5.0px;">


  <div style="max-width: 650.0px;overflow: hidden;font-size: 0;clear: both;"><div style="border: 1.0px solid #dedede;vertical-align: top;text-align: left;color: #666666;width: 120.0px;padding: 10.0px 15.0px;margin: 10.0px 10.0px 0 0;word-break: break-all;display: inline-block;"> 

我尝试使用此命令

SELECT * 
FROM  `oc_product_description` 
WHERE  `description` LIKE '%<h2 class="ui-box-title">Product Description</h2>    <div class="ui-box-body">      <p> &nbsp; </p> <h2 style="padding: 5.0px;">     <div style="max-width: 650.0px;overflow: hidden;font-size: 0;clear: both;"><div style="border: 1.0px solid #dedede;vertical-align: top;text-align: left;color: #666666;width: 120.0px;padding: 10.0px 15.0px;margin: 10.0px 10.0px 0 0;word-break: break-all;display: inline-block;"> %'
LIMIT 0 , 30

但它返回0结果

我需要在表格描述中找到并用“”替换值如何做到这一点? 如果我使用此命令搜索

SELECT * 
FROM  `oc_product_description` 
WHERE  `description` LIKE  '% <h2 class="ui-box-title">Product Description</h2>%'
LIMIT 0 , 30

它将返回结果显示行0 - 29

请告知专家需要帮助。赞赏。感谢

2 个答案:

答案 0 :(得分:0)

为什么你的代码不能正常工作

数据库中代码的间距可能与给定的代码不同。

解决方案

你可以这样做:

<?php
$1 = '<h2 class="ui-box-title">Product Description</h2>';
$2 = '<div class="ui-box-body">';
$3 = '<p> &nbsp; </p> <h2 style="padding: 5.0px;">';
$4 = '<div style="max-width: 650.0px;overflow: hidden;font-size: 0;clear: both;"><div style="border: 1.0px solid #dedede;vertical-align: top;text-align: left;color: #666666;width: 120.0px;padding: 10.0px 15.0px;margin: 10.0px 10.0px 0 0;word-break: break-all;display: inline-block;">';
$connect= mysqli_connect("localhost","root","","db"); //edit parameters
$query = "SELECT * 
FROM  `oc_product_description` 
WHERE  `description` LIKE '%".$1."%' AND `description` LIKE '%".$2%."'`description` LIKE '".%$3%."' AND `description` LIKE '%".$4%."'
LIMIT 0 , 30";
$query = mysqli_query($connect,$query);
if(mysqli_num_rows($query)==1){echo 'Found the correct string!<br>';
$assoc = mysqli_fetch_assoc($query);
echo $assoc['description'];
}
else if(mysqli_num_rows($query)>1){echo 'Found too much results!';}
else{echo 'Found nothing!';}
?>

如果这不起作用

您可以在插入数据库之前转义html字符串。 取代

$1 = '<h2 class="ui-box-title">Product Description</h2>';
$2 = '<div class="ui-box-body">';
$3 = '<p> &nbsp; </p> <h2 style="padding: 5.0px;">';
$4 = '<div style="max-width: 650.0px;overflow: hidden;font-size: 0;clear: both;"><div style="border: 1.0px solid #dedede;vertical-align: top;text-align: left;color: #666666;width: 120.0px;padding: 10.0px 15.0px;margin: 10.0px 10.0px 0 0;word-break: break-all;display: inline-block;">';
$connect= mysqli_connect("localhost","root","","db"); //edit parameters

使用

$connect= mysqli_connect("localhost","root","","db"); //edit parameters
$1 = mysqli_real_escape_string($connect,'<h2 class="ui-box-title">Product Description</h2>');
$2 = mysqli_real_escape_string($connect,'<div class="ui-box-body">');
$3 = mysqli_real_escape_string($connect,'<p> &nbsp; </p> <h2 style="padding: 5.0px;">');
$4 = mysqli_real_escape_string($connect,'<div style="max-width: 650.0px;overflow: hidden;font-size: 0;clear: both;"><div style="border: 1.0px solid #dedede;vertical-align: top;text-align: left;color: #666666;width: 120.0px;padding: 10.0px 15.0px;margin: 10.0px 10.0px 0 0;word-break: break-all;display: inline-block;">');

如果您仍然无法获得预期结果,则可能使用了htmlspecialchars(),可能除了mysqli_real_escape_string()之外。 修改添加htmlspecialchars的变量$ 1,$ 2,$ 3和$ 4,如果不起作用,请尝试删除mysqli_real_escape_string

答案 1 :(得分:0)

你可以试试这个:

UPDATE oc_product_description SET description = REPLACE(description, '<h2 class="ui-box-title">Product Description</h2><div class="ui-box-body"><p> &nbsp; </p> <h2 style="padding: 5.0px;"><div style="max-width: 650.0px;overflow: hidden;font-size: 0;clear: both;"><div style="border: 1.0px solid #dedede;vertical-align: top;text-align: left;color: #666666;width: 120.0px;padding: 10.0px 15.0px;margin: 10.0px 10.0px 0 0;word-break: break-all;display: inline-block;">', '')
WHERE description LIKE ('%<h2 class="ui-box-title">Product Description</h2><div class="ui-box-body">      <p> &nbsp; </p><h2 style="padding: 5.0px;"><div style="max-width: 650.0px;overflow: hidden;font-size: 0;clear: both;"><div style="border: 1.0px solid #dedede;vertical-align: top;text-align: left;color: #666666;width: 120.0px;padding: 10.0px 15.0px;margin: 10.0px 10.0px 0 0;word-break: break-all;display: inline-block;"> %');

但在尝试之前只需保留表的备份。

相关问题