来问一个有关问题,正则匹配创建数据库SQL的数据库名称
来问一个问题,正则匹配创建数据库SQL的数据库名称?
要考虑所有情况,只要能创建数据库的SQL的名称都要匹配出来哦。
名称有可能没有``,有可能没有空格,有可能没有修饰关键字等...
------解决方案--------------------
/create\s+database\s+(\w+)/is
名称有可能没有``,有可能没有空格
无可能
------解决方案--------------------
- PHP code
<?php $sql=<<<SQL CREATE DATABASE `aaab`' CREATE DATABASE aaab CREATE DATABASE`aaab` CREATE DATABASE`aaa@@@#b` CREATE DATABASE`aaa``b` SQL; preg_match_all('/CREATE\s+DATABASE\s?((`?)[\w@#]+\2)+/is',$sql,$matchs); print_r($matchs); <br /><font color="#e78608">------解决方案--------------------</font><br>
- PHP code
<?php $sql=<<<SQL CREATE DATABASE `aaab`' CREATE DATABASE aaab CREATE DATABASE`aaab` CREATE DATABASE`aaa@@@#b` CREATE DATABASE`aaa``b` CREATE DATABASE aaab DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci SQL; preg_match_all('/CREATE\s+DATABASE\s*(([`\'"]?)([\w@#`]+)\2\s?)/is',$sql,$matchs); print_r($matchs[3]); <br /><font color="#e78608">------解决方案--------------------</font><br>名称里面可以出现什么符号 往中括号里面加就行了 比如你说的() [\w@#`()]<br>我只能保证数据库名两边同时出现 ` 或者同时不出现 `,不能控制里面 ` 的数量 <br><font color="#e78608">------解决方案--------------------</font><br>
------解决方案--------------------
那串符号可以用[:punct:]表示,[:punct:]代表标点符号字符 类似的还有[:alnum:] [:space:] ... 各表示几种类型的字符串
可以修改如下
- PHP code
preg_match_all('/CREATE\s+DATABASE\s*((([`\'"])?)([\w[:punct:]]+)\2\s?)/is',$sql,$matchs); <br><font color="#e78608">------解决方案--------------------</font><br> 试下<br>
- PHP code
$databases = <font color="#e78608">------解决方案--------------------</font><br>上面的不行,``中间的`必须是偶数位。。这个比较麻烦。 <br><font color="#e78608">------解决方案--------------------</font><br>

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

HQL et SQL sont comparés dans le framework Hibernate : HQL (1. Syntaxe orientée objet, 2. Requêtes indépendantes de la base de données, 3. Sécurité des types), tandis que SQL exploite directement la base de données (1. Normes indépendantes de la base de données, 2. Exécutable complexe requêtes et manipulation de données).

Les solutions à l'erreur de base de données Discuz sont : 1. Vérifiez la configuration de la base de données ; 2. Assurez-vous que le serveur de base de données est en cours d'exécution ; 3. Vérifiez l'état de la table de base de données ; 5. Videz le cache ; ; 7. Vérifiez les ressources du serveur ; 8. Contactez le support officiel de Discuz. Résoudre les erreurs de base de données Discuz nécessite de commencer par plusieurs aspects, d'étudier progressivement la cause du problème et de prendre les mesures correspondantes pour le réparer.

"Utilisation de l'opération de division dans OracleSQL" Dans OracleSQL, l'opération de division est l'une des opérations mathématiques courantes. Lors de l'interrogation et du traitement des données, les opérations de division peuvent nous aider à calculer le rapport entre les champs ou à dériver la relation logique entre des valeurs spécifiques. Cet article présentera l'utilisation de l'opération de division dans OracleSQL et fournira des exemples de code spécifiques. 1. Deux méthodes d'opérations de division dans OracleSQL Dans OracleSQL, les opérations de division peuvent être effectuées de deux manières différentes.

Intel Arrow Lake devrait être basé sur la même architecture de processeur que Lunar Lake, ce qui signifie que les tout nouveaux cœurs de performance Lion Cove d'Intel seront combinés avec les cœurs d'efficacité économiques Skymont.

Oracle et DB2 sont deux systèmes de gestion de bases de données relationnelles couramment utilisés, chacun possédant sa propre syntaxe et ses propres caractéristiques SQL. Cet article comparera et différera la syntaxe SQL d'Oracle et de DB2, et fournira des exemples de code spécifiques. Connexion à la base de données Dans Oracle, utilisez l'instruction suivante pour vous connecter à la base de données : CONNECTusername/password@database Dans DB2, l'instruction pour vous connecter à la base de données est la suivante : CONNECTTOdataba.

Qu'est-ce que l'identité en SQL ? Des exemples de code spécifiques sont nécessaires. En SQL, l'identité est un type de données spécial utilisé pour générer des nombres à incrémentation automatique. Il est souvent utilisé pour identifier de manière unique chaque ligne de données dans une table. La colonne Identité est souvent utilisée conjointement avec la colonne clé primaire pour garantir que chaque enregistrement possède un identifiant unique. Cet article détaillera comment utiliser Identity et quelques exemples de code pratiques. La manière de base d'utiliser Identity consiste à utiliser Identit lors de la création d'une table.

Interprétation des balises SQL dynamiques MyBatis : explication détaillée de l'utilisation des balises Set MyBatis est un excellent cadre de couche de persistance. Il fournit une multitude de balises SQL dynamiques et peut construire de manière flexible des instructions d'opération de base de données. Parmi elles, la balise Set est utilisée pour générer la clause SET dans l'instruction UPDATE, qui est très couramment utilisée dans les opérations de mise à jour. Cet article expliquera en détail l'utilisation de la balise Set dans MyBatis et démontrera ses fonctionnalités à travers des exemples de code spécifiques. Qu'est-ce que Set tag Set tag est utilisé dans MyBati

Contexte : L'un des besoins de l'entreprise est que le composant de journal de suivi des liens existant de l'entreprise doit prendre en charge l'impression du temps d'exécution SQL de MySQL. La méthode courante pour implémenter le suivi des liens consiste à implémenter l'interface d'intercepteur ou l'interface de filtre fournie par un framework ou un outil tiers. MySQL ne fait pas exception. En fait, il implémente simplement l'interface d'interception pilotée par MySQL. Il existe différentes versions de canaux qui implémentent spécifiquement MySQL, et les interfaces d'intercepteur des différentes versions sont différentes, vous devez donc implémenter l'intercepteur de réponse en fonction des différentes versions du pilote MySQL que vous utilisez. Ensuite, nous présenterons les canaux MySQL 5. et 6 respectivement. Implémentation de la version 8. MySQL5 est implémenté ici en utilisant la version du canal MySQL 5.1.18 comme exemple pour implémenter Statem
