我遇到str_replace函数的问题,请参阅下面的代码:
$query = "SELECT title FROM zakov WHERE chnt='$atd_nad'";
$str = str_replace("Example.com_", "","$query");
$result = mysql_query($str) or die('Errant query: '.$str);
我想要的是将“Example.com_”替换为“”,但它对我不起作用!我不知道为什么。 在“标题”行中,您可以找到类似“Example.com_nameofsmthng”的内容 所以我想要的只是保留“nameofsmthng”这个词,并保留大写字母中每个单词的开头,最后有点像“NameOfSmthng”
答案 0 :(得分:1)
$atd_nad = 'Foobar Example.com_nameofsmthng Bazbat';
$query = 'SELECT title FROM zakov WHERE chnt="' . $atd_nad . '"';
$str = str_replace('Example.com_', '', $query);
echo $str; // SELECT title FROM zakov WHERE chnt="Foobar nameofsmthng Bazbat"
这很好用。 Try it quickly。我的假设是您错误输入$ atd_nad或值不正确。
答案 1 :(得分:1)
编辑:嗯,我想我误解了你试图替换查询字符串而不是数据库中的字符串的例子?
你可以让mysql为你做替换,这应该比php更快。
$query = "SELECT REPLACE(title, 'Example.com_', '') as newtitle FROM zakov WHERE chnt='$atd_nad'";
$resultset = mysql_query($query) or die('Errant query: '.$query);
$result = mysql_fetch_assoc($query);
echo $result['newtitle'];
或者您可以使用更新替换数据库中的所有实例,然后只选择标题。
UPDATE zakov SET title = REPLACE(title, 'Example.com_', '');
希望这有帮助。
答案 2 :(得分:0)
while($row = mysql_fetch_assoc($result)) {
$title = str_replace("something", "", $row['title']);
}
我相信你在寻找什么。您的代码正在尝试在查询中替换它,这没有意义。您需要在实际记录中替换它。这将用“”取代“某事”。或者,如果您已经将它们存储在数组或其他内容中,您只需将数组循环并进行替换即可。基本上:对记录进行操作,而不是对查询进行操作。