Question

J'ai un fichier SqlDump.sql qui fonctionne très bien quand je l'applique en utilisant la fonction d'importation de phpMyAdmin, mais je dois être en mesure d'accomplir ce programme. Être un noob, j'ai essayé de faire quelque chose comme ceci:

$SQL=file_get_contents('SqlDump.sql');
$DB=mysqli_connect('localhost','root','');
mysqli_select_db($DB,'somedb');
if (mysqli_multi_query($DB, $SQL)) {
    do {
        if ($result = mysqli_store_result($DB)) {
            mysqli_free_result($result);
        }
    } while (mysqli_next_result($DB));
}
$Err=mysqli_error($DB);
mysqli_close($DB);

Mais je reçois toutes sortes d'erreurs de MySQL. Pourtant, le même fichier fonctionne très bien quand je l'importer en utilisant phpMyAdmin. Comment puis-je obtenir ce travail programme?

Erreur:

Can't create table 'somedb.t_sr_u_alertcode' (errno: 150)
Était-ce utile?

La solution

Vous avez deux problèmes.

Cette erreur est une erreur de contrainte de clé étrangère. Certaines table que vous essayez de créer a probablement une clé étrangère à une autre table qui n'a pas encore été créé.

J'ai trouvé quelques exemples de l'erreur ici:

par googling ceci:

Le deuxième problème est que vous aurez probablement des difficultés à essayer d'importer un fichier volumineux parce que je ne pense pas que vous pouvez exécuter plusieurs commandes SQL avec un seperated; comme vous pouvez dans phpMyAdmin. Je suggère d'utiliser un script comme celui-ci:

Je n'ai pas essayé moi-même, mais je n'ai aucune raison de croire qu'il ne fonctionne pas.

Autres conseils

Vous pourriez toujours juste regarder le code source

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top