将数据库中的列中的所有值从一种语言转换为另一种语言

时间:2014-04-21 15:45:47

标签: php mysql sql google-translate

我有一张瑞典语中有鱼名的桌子,看起来像这样:

FishID | SwedishName |栖息地

我有每条鱼的所有瑞典名字,但我想要英文名称,我希望它看起来像这样:

FishID | SwedishName |英文名称|栖息地

有没有办法将每条鱼的瑞典名称翻译成英文并将其插入“英文名称”列?

1 个答案:

答案 0 :(得分:0)

  

有没有办法将每条鱼的瑞典名称翻译成   英语并将其插入“英文名称”列?

除非你使用API​​,否则你需要将英文版本插入到你的数据库中,如果你有一个列表或数组准备好插入它将是繁琐的,但如果你不这样做,你可能会有这样的东西,在那里你选择所有的行,然后创建一个基本表单表,您可以在其中列出并放置英语等效表。

<?php 
//connect
try {
    $db = new PDO('mysql:host=127.0.0.1;dbname=fish_db', 'username', 'password');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    $db->exec("SET CHARACTER SET utf8");
} catch(PDOException $e) {
    echo 'Sorry there is a problem with the database connection :' . $e->getMessage();
}

//update if POST'ed form
if($_SERVER['REQUEST_METHOD'] == 'POST'){
    foreach($_POST['EnglishName'] as $key => $value){
        $stmt = $db->prepare('UPDATE fish_table 
                              SET EnglishName = :EnglishName 
                              WHERE FishID=:FishID');

        $stmt->bindValue(':EnglishName', $value);
        $stmt->bindValue(':FishID', $key);
        $stmt->execute();
    }
}

//select rows
try{
    $stmt = $db->prepare('SELECT * FROM fish_table WHERE EnglishName = ""');
    $stmt->execute();
    $fishs = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
catch(PDOException $e) {
    echo 'Error: ' . $e->getMessage();
}
?>
<form method="post" action="">
    <table>
    <?php foreach($fishs as $fish):?>
        <tr>
            <td width="50%"><input type="text" name="swedish[<?php echo $fish['FishID']?>]" value="<?php echo $fish['SwedishName']?>"></td>
            <td width="50%"><input type="text" name="english[<?php echo $fish['FishID']?>]" value=""></td>
        </tr>
    <?php endforeach;?>
    </table>
    <input type="submit" name="Submit" value="Submit" >
</form>

或者使用phpmyadmin; p