我需要更新表的列。
我有这个:
ID |标题| slug_name
1 |获胜者是|
2 |美好的一天|
我要更新slug_name:
ID |标题| slug_name
1 |获胜者是|的优胜者,是
2 |美好的一天|美丽天
所以我创建了一个函数slug()
function slug($str) {
return strtolower(trim(preg_replace('/[^a-zA-Z0-9]+/', '-', $str), '-'));
}
如何返回" title"在函数" slug"?
mysql_query("UPDATE table SET slug_name = '".slug(???title???)."'");
我也试过了:
$items = mysql_query("SELECT title FROM table");
while($item = mysql_fetch_object($items)) {
mysql_query("UPDATE table SET slug_name = '".slug($item->title)."'");
}
但所有行都返回相同的" slug_name"。
答案 0 :(得分:0)
你有一个缺少的参数,为了MySQL更新和特定的行,你需要指定那个行属性你的函数中带有WHERE闭包的ID或标题。
function slug($str) {
return "UPDATE table SET slug_name ='" . strtolower(trim(preg_replace('/[^a-zA-Z0-9]+/', '-', $str), '-')) . "' WHERE title ='" . $str . "'";
}
现在让它干净:
function slug($str) {
$new_string = "UPDATE table SET slug_name ='";
$new_string .= strtolower(trim(preg_replace('/[^a-zA-Z0-9]+/', '-', $str), '-'));
$new_string .= "' WHERE title ='" . $str . "'";
return $new_str
}