2016-07-15 276 views
2

我正在嘗試使腳本將我的編碼從utf8mb4更改爲utf8。將utf8mb4更改爲utf8

我的PHP knowlege有點過時,我不能讓腳本與mysqli一起工作。

這是基本的腳本我有:

<?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,現在我有這個:

<?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!"; 
    ?> 

我認爲這個問題是在最後一部分,我得到的錯誤是:

php errors

比k你的幫助! :)

+0

mysqli_query()需要第一個參數作爲您的連接。用它作爲'$ result = mysqli_query($ mysqli,'show tables'); '閱讀http://php.net/manual/en/mysqli.query.php – Saty

+0

我試過這個,但現在我得到50次同樣的錯誤:'mysqli_query()期望至少有2個參數,1給出' – Relisora

+0

你有沒有在foreach循環查詢裏面改變? – Saty

回答

1

mysqli_query()需要第一個參數作爲您的連接。使用它作爲

$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"); 
    } 
} 
相關問題