Quelle est la meilleure façon de vérifier si une table existe dans MySQL (de préférence via PDO en PHP) sans lever d'exception. Je n'ai pas envie d'analyser les résultats de "SHOW TABLES LIKE" et cetera. Il doit y avoir une sorte de requête booléenne?
123
mysql_*
fonctions, elles sont officiellement obsolètes , ne sont plus maintenues et seront supprimées à l'avenir. Vous devez mettre à jour votre code avec PDO ou MySQLi pour garantir la fonctionnalité de votre projet à l'avenir.Si vous utilisez MySQL 5.0 et versions ultérieures, vous pouvez essayer:
Tous les résultats indiquent que la table existe.
De: http://www.electrictoolbox.com/check-if-mysql-table-exists/
la source
En utilisant mysqli, j'ai créé la fonction suivante. En supposant que vous ayez une instance mysqli appelée $ con.
J'espère que ça aide.
Attention: comme suggéré par @jcaron, cette fonction pourrait être vulnérable aux attacs sqlinjection, alors assurez-vous que votre
$table
var est propre ou mieux utilisez des requêtes paramétrées.la source
Ceci est affiché simplement si quelqu'un vient chercher cette question. Même si on lui a répondu un peu. Certaines des réponses le rendent plus complexe qu'il ne devait l'être.
Pour mysql * j'ai utilisé:
Dans PDO j'ai utilisé:
Avec cela, je pousse simplement la condition else dans ou. Et pour mes besoins, j'ai simplement besoin de mourir. Bien que vous puissiez définir ou à d'autres choses. Certains pourraient préférer le if / else if / else. Ce qui consiste alors à supprimer ou et à fournir ensuite if / else if / else.
la source
Voici ma solution que je préfère lors de l'utilisation de procédures stockées. Fonction mysql personnalisée pour vérifier que la table existe dans la base de données actuelle.
la source
Comme un "Afficher les tables" peut être lent sur des bases de données plus volumineuses, je recommande d'utiliser "DESCRIBE" et de vérifier si vous obtenez true / false en conséquence
la source
la source
Cadre Zend
la source
Si la raison de vouloir faire cela est la création de table conditionnelle, alors 'CREATE TABLE IF NOT EXISTS' semble idéal pour le travail. Jusqu'à ce que je découvre cela, j'ai utilisé la méthode «DESCRIBE» ci-dessus. Plus d'informations ici: MySQL "CREATE TABLE IF NOT EXISTS" -> Erreur 1050
la source
Pourquoi vous rendez-vous si difficile à comprendre?
la source