更新mysql中每一行的表列

时间:2017-03-25 20:50:50

标签: php mysql sql database mysqli

我在sql中有一个表,其中有3列名为idtitlestory_url

我正在尝试SEO friendly URL。所以我要做的是使用titlereplace white spacesspecial chars使用短划线( - )并将其保存到其他列story_url中。 story_url是空的atm。

更新我的所有表格行或在story_url中插入创建的网址。

如果我在while循环中执行它,那么它只会在所有行中添加最后一个值。

function seoUrl($string) {

    $string = strtolower($string);
    $string = preg_replace("/[^a-z0-9_\s-]/", "", $string);
    $string = preg_replace("/[\s-]+/", " ", $string);
    $string = preg_replace("/[\s_]/", "-", $string);
    return $string;
}

while($row = mysqli_fetch_array($run)) {
    $title = $row['title'];
    $story = $row['story'];
    $id = $row['id'];

    $url = seoUrl($title);
    $query = "UPDATE table SET story_url='$url'";
    mysqli_query($conn,$query);
}

1 个答案:

答案 0 :(得分:0)

您的UPDATE查询需要WHERE条款。

用以下内容替换您的查询:

$query = "UPDATE table SET story_url='$url' WHERE id='$id'";