php - 将数据库列中的所有值从一种语言翻译为另一种语言

标签 php mysql sql google-translate

我有一张带有瑞典语鱼名的表格,看起来像这样:

鱼ID |瑞典语名称 |栖息地

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

鱼ID |瑞典语名称 |英文名称 |栖息地

有什么方法可以将每条鱼的瑞典语名称翻译成英语并将其插入到“EnglishName”列中吗?

最佳答案

Is there any way to translate the swedish name of every fish to english and insert it in the 'EnglishName' column?

除非您使用 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

关于php - 将数据库列中的所有值从一种语言翻译为另一种语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23200701/

相关文章:

php - 如何从文本中删除变音符号?

php - 用户无法使用PHP形式更新MySQL数据库中的信息

php - 作为 0000-00-00 插入日期列

MySQL查询按日期范围分组?

mysql - SQL:合并多行数据

php - Yii2 用 ActiveRecord 查找返回简单属性数组

mysql - 将相同的sql结果绑定(bind)为一个字符串

mysql - Docker 在 Ubuntu 16.04 上安装 MySQL v3.23

c# - Entity Framework 原始 SQL 查询选择未知列(未知返回类型)

sql - 如何在 Microsoft Access 查询中设置日期格式