ホームページ  >  記事  >  バックエンド開発  >  データベースSQL作成時のデータベース名の定期的なマッチングについて質問させていただきます。

データベースSQL作成時のデータベース名の定期的なマッチングについて質問させていただきます。

WBOY
WBOYオリジナル
2016-06-13 13:34:19788ブラウズ

データベースを作成する SQL のデータベース名を一致させるにはどうすればよいですか?
データベースを作成できる SQL の名前が一致する必要がある限り、あらゆる状況を考慮する必要があります。
名前には「」が含まれていない、スペースが含まれていない、キーワードが変更されていないなどがあります...



-----解決策-- ------------------
/creates+databases+(w+)/is

名前には「」やスペースを含めることはできません。 🎜>チャンスはない
<br>------解決策---------<font color="#e78608"></font><br>PHP コード

<br>------解決策---------<font color="#e78608"></font><br>PHP コード
<br>------解決策-----<font color="#e78608"></font>名前に使用できる記号は何ですか?たとえば、あなたが言ったように、() [w@#`()]<br>` がデータベース名の両側に表示されるか、同時に表示されないことを確認するだけです。 ` の数を制御することはできません。 <br><br>------解決策---------<font color="#e78608"></font><br>
話し合う つまり、「」が使用されている限り、名前に任意の記号を含めることができます。

` を使用しない場合、名前には文字と数字のみを使用でき、DATABASE テキストと区切るために前にスペースを追加する必要があります。


------解決策---------記号の文字列を使用できます [:punct: ] は句読点を表し、[:punct:] は句読点を表します。同様のものには [:alnum:] [:space:]... それぞれがいくつかの種類の文字列を表します
は次のように変更できます

PHP コード
preg_match_all('/CREATEs+DATABASEs*((([`'"])?)([w[:punct:]]+)2s?)/is',$sql,$matchs);
<br>------解決策------------------<font color="#e78608"></font>
<br><br>PHP コード
を試してください $databases = <<<br>------解決策--------<font color="#e78608"></font>上記は機能しません、「中間」 ' は偶数である必要があります。 。これはさらに厄介です。 <br><br>------解決策---------<font color="#e78608"></font><br>
話し合う

そうです。 「真ん中」は偶数桁が一致すれば問題ありません。奇数の場合はSQLに問題があることを意味するため考慮する必要はありません。

上記の `aaa````bbb` は一致しません。

引用:

上記は機能しません。「中央」は偶数でなければなりません。 。これはさらに厄介です。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。