Я хочу предложить пользователю ввести имя базы данных и предупредить его, если он недействителен.
Есть ли более простой способ, чем на самом деле пытаться создать базу данных и проверить результат?
Нет большой, мне просто интересно. PHP и MySql, но мне нужно, чтобы он был совместимым с ODBC.
У вас должен быть свой PHP script проверять имя перед его отправкой и уловить любую ошибку, возвращающуюся из MySQL при попытке ее создания.
PHP может проверять имя на регулярное выражение, например. Возможно, вы хотите разрешать только алфавитные символы.
На самом деле, я настоятельно рекомендую только принимать алфавитные символы и проверять это до того, как когда-либо отправит что-либо в команду базы данных... нет смысла давать кому-либо возможность представить значения, которые могут привести к введению SQL-инъекции в контексте пользователь с возможностью создания баз данных.
Но я бы тоже спросил; Вам действительно нужно разрешить пользователям определять свои собственные имена баз данных? Может показаться "приятным" включить его, но есть ли реальная польза от создания полуслучайного или увеличивающегося имени для пользователей, исключая необходимость проверки их ввода в этом конкретном случае?
^[a-zA-Z]{10,20}$
будет соответствовать только имени, используя только буквы, длиной от 10 до 20 символов. Вы могли бы также безопасно добавить подчеркивание и цифры; но я бы не стал добавлять больше, чем это.