新規ユーザー登録時に、PHPを使用してMySqlデータベースを作成したいと考えています。文字列から有効なMYSqlデータベース名を作成する方法は?
ただし、ユーザー名の一部の文字は、適切でない可能性があります(O'reilly
を参照)。
ユーザ名を有効なMySqlデータベース名にするためにユーザ名を「サニタイズ」するにはどうすればよいですか?
[更新] I できたので、havonf @dognose提案し、ユーザDB名でUER IDをuase、db_1
、db_2
など確かに特殊文字の問題を解決し、それが作る
人間が読める名前をつけるよりも、私がデバッグするのがずっと難しいです。
あまりにも多いですが。そして、名前の重複問題を解決しました。
他の人はどうしますか?
a-z以外のものを削除するなどしてください。それらを再正規化する。 –
@SamKuhmonenこれは最善のことではありません。同様の名前で競合する可能性があります。つまり、特殊文字を削除または置換しても、 '$ Bob 'と'§Bob'は同じものになります。ユーザーがサインアップすると、私はIDを取得します - データベース名をdatabase_ {userid}とします – dognose
@dognoseもちろん、他のチェックが必要ですが、それは与えられます。ユーザー名は一意でもかまいませんが、既に特殊文字はありません。ユーザーの名前は一意ではありません。 –