首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将utf8mb4更改为utf8

将utf8mb4更改为utf8
EN

Stack Overflow用户
提问于 2016-07-15 12:49:35
回答 1查看 3.4K关注 0票数 2

我正在尝试创建一个脚本,将我的编码从utf8mb4更改为utf8。

我的PHP知识有点过时,我无法让脚本使用mysqli。

这是我的基本脚本:

代码语言:javascript
复制
<?php
$con = mysql_connect('localhost','user','password');
if(!$con) { echo "Cannot connect to the database ";die();}
  mysql_select_db('dbname');
  $result=mysql_query('show tables');
  while($tables = mysql_fetch_array($result)) {
    foreach ($tables as $key => $value) {
      mysql_query("ALTER TABLE $value CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci");
    }}
  echo "The collation of your database has been successfully changed!";
  ?>

它不起作用,所以我尝试将它更新为mysqli,现在我有了以下内容:

代码语言:javascript
复制
<?php
$mysqli = new mysqli("localhost", "root", "", "test");

if (mysqli_connect_errno()) {
    printf("connexion error : %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("The database is : %s.\n", $row[0]);
    $result->close();
}

  $result=mysqli_query('show tables');
  while($tables = mysqli_fetch_array($result)) {
    foreach ($tables as $key => $value) {
      mysqli_query("ALTER TABLE $value CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci");
    }}
  echo "The collation of your database has been successfully changed!";
  ?>

我认为问题是在最后一部分,我得到的错误是:

谢谢你的帮助!)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-15 12:57:59

mysqli_query()需要第一个参数作为连接。把它当作

代码语言:javascript
复制
$result = mysqli_query($mysqli, 'show tables');
while ($tables = mysqli_fetch_array($result)) {
    foreach ($tables as $key => $value) {
        mysqli_query($mysqli, "ALTER TABLE $value CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci");
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38396586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档