2016-07-15 16 views
2

Ich versuche ein Skript zu erstellen, das meine Codierung von utf8mb4 zu utf8 ändert.Ändern von utf8mb4 zu utf8

Mein PHP Knowlege ist ein wenig veraltet und ich kann das Skript nicht mit mysqli arbeiten.

dies ist die Basis Skript hatte ich:

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

es nicht so dass ich es zu aktualisieren versucht, funktioniert muss ich mysqli und jetzt das:

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

ich glaube, das Problem ist in der letzte Teil, die Fehler i bekommen sind:

php errors

als k du für deine Hilfe! :)

+0

mysqli_query() brauchen erste Parameter als Ihre Verbindung. Verwenden Sie es als '$ result = mysqli_query ($ mysqli, 'show tables'); 'Lesen Sie http://php.net/manual/en/mysqli.query.php – Saty

+0

Ich versuchte dies, aber jetzt bekomme ich 50 mal den gleichen Fehler:' mysqli_query() erwartet mindestens 2 Parameter, 1 gegeben ' – Relisora

+0

Haben Sie Änderung innerhalb der foreach Schleife Abfrage ?? – Saty

Antwort

1

mysqli_query() brauche ersten Parameter als deine Verbindung. Verwenden Sie es als

$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"); 
    } 
} 
Verwandte Themen