$create_tbl = "CREATE TABLE IF NOT EXISTS table_name(
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT,
msg TEXT,
datetime INTEGER,
)";
if(mysqli_query($create_tbl))
{
echo "Таблица только что была создана";
}
else
{
echo "Таблица с таким именем в базе данных уже существует";
}
Всегда приходит ответ "Таблица только что была создана". Хотя начиная со второго запуска скрипта надо чтоб приходило "Таблица с таким именем в базе данных уже существует".
Вообще кто то использует такую sql конструкцию, или чаще все-таки просто идет проверка через SELECT и mysqli_affected_rows ?
Спустя 7 минут, 20 секунд (18.04.2012 - 12:55) T1grOK написал(а):
$create_tbl = "CREATE TABLE table_name(
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT,
msg TEXT,
datetime INTEGER,
)";
//В идеале когда нет ошибок в самом запросе и т.д.
mysqli_query($this->create_tbl) or die('Таблица с таким именем существует');
echo "Таблица только что была создана";
Можно еще через information_schema сделать.
Спустя 9 минут, 23 секунды (18.04.2012 - 13:04) T1grOK написал(а):
Или еще так
if(mysqli_query($create_tbl))
{
echo "Таблица только что была создана";
}
else
{
if(mysqli_errno() == 1146)
{
echo "Таблица с таким именем в базе данных уже существует";
}
}
Спустя 8 минут (18.04.2012 - 13:12) sergeiss написал(а):
Цитата (logic @ 18.04.2012 - 14:48) |
Всегда приходит ответ "Таблица только что была создана". |
Всё логично. Потому что эта фраза выдается в случае выполнения запроса. А запрос будет всегда успешен, т.е. без ошибок.
Спустя 4 минуты, 41 секунда (18.04.2012 - 13:17) logic написал(а):
Цитата (sergeiss @ 18.04.2012 - 11:12) | ||
Всё логично. Потому что эта фраза выдается в случае выполнения запроса. А запрос будет всегда успешен, т.е. без ошибок. |
вот именно это я и подозревал...ну и если это не является ошибочным запросом, то БД ошибку не вернет, а как тогда поступить, проверять через SELECT, и если вернет что то, то есть, если ошибка то нету таблицы...
спасибо
Спустя 13 минут, 47 секунд (18.04.2012 - 13:31) T1grOK написал(а):
IF NOT EXISTS убрать в запросе. Или перед созданием селектом из information_schema проверять.
Спустя 25 минут, 54 секунды (18.04.2012 - 13:57) logic написал(а):
Цитата (T1grOK @ 18.04.2012 - 11:31) |
IF NOT EXISTS убрать в запросе. |
ну дурааааак ))))
Спасибо