- З приводу створення таблиць в MySQL рекомендую почитати документацію.
- Перевіряти чи існує таблиця як у вас в коді - неправильно. Якщо таблиці не існує, то спроба звернутися до неї запитом викличе помилку і виконання перерветься. Таблицю можна створити із зазначенням IF NOT EXISTS. Вона буде створена тільки в тому випадку якщо однойменної таблиці в БД не існує.
- Змінну з назвою таблиці дуже бажано фільтрувати на предмет зайвих символів. Частково, за допомогою mysql_real_escape_string (). частково - своїм фільтром (назва - це не рядок).
- Створювати таблицю з ім'ям одержуваних ззовні - потенційна дірка в захисті.
- І, нарешті, створювати таблиці в runtime - поганий тон. За винятком тих випадків, коли розробляються скрипти автоматичної інсталяції. Але, звичайно, такий скрипт відпрацьовує один раз і після цього знищується.
Якщо я правильно зрозумів структуру створюваної таблиці, то SQL-скрипт для її створення в вашому випадку виглядав би приблизно так:
Саме цю конструкцію потрібно класти в рядок і згодовувати mysql_query ().
Дякую за рекомендації! І, нарешті, створювати таблиці в runtime - поганий тон. За винятком тих випадків, коли розробляються скрипти автоматичної інсталяції. Але, звичайно, такий скрипт відпрацьовує один раз і після цього знищується. Мені просто треба зберігати інформацію про час запису на кожен день. Створювати кожен раз ці таблиці вручну якось не хочеться. А до іншого способу я не додумався. - Радик Камалов 21 Лютого '12 о 8:37
Для цього зовсім не обов'язково кожен раз створювати нову таблицю. Досить створити одну з первинних ключем по полю типу DATETIME. І писати туди кожен раз значення SQL-функції NOW () (поточна дата-час). А для SELECT-вибірки будь-якого зрізу інформації в SQL існують такі речі як умови, сортування і угрупування. - KiTE 21 Лютого '12 о 15:50