Проверить существование таблицы mysql php

MySQL: как проверить существование таблицы

Проверить существование таблицы mysql php. Смотреть фото Проверить существование таблицы mysql php. Смотреть картинку Проверить существование таблицы mysql php. Картинка про Проверить существование таблицы mysql php. Фото Проверить существование таблицы mysql phpVladimir Kochetkov

Нужно проверить существование таблицы в что-то типа такой структуре:

IF TABLE EXISTS tabl_name THEN…
END IF

Не могу найти в мануале как это решить…
Дополнено (1). to gmaneye
С чего же это неправильный тон программирования?
Или для вас правильный тон использовать Oracle для четырех типов запросов SELECT, INSERT, UPTADE и DELETE?

Короче написал что-то вроде такого:

SELECT COUNT(1) INTO tabl_found
FROM information_schema.tables
WHERE table_name = tabl_name
AND schema = DATABASE()
LIMIT 1;

IF tabl_found = 1 THEN…
END IF
Дополнено (2). короче все равно не работает чего-то
tabl_found принимает значение DEFAULT, а не 0 или 1
Дополнено (3). Исправил:

SELECT COUNT(1) INTO tabl_found
FROM information_schema.tables
WHERE table_name = tabl_name
AND table_schema = DATABASE();
Дополнено (4). WebMikE,
а причем тут php?

Проверить существование таблицы mysql php. Смотреть фото Проверить существование таблицы mysql php. Смотреть картинку Проверить существование таблицы mysql php. Картинка про Проверить существование таблицы mysql php. Фото Проверить существование таблицы mysql phpgmaneye

Вообще это неправильный тон программирования.
Для чего такое?

Проверить существование таблицы mysql php. Смотреть фото Проверить существование таблицы mysql php. Смотреть картинку Проверить существование таблицы mysql php. Картинка про Проверить существование таблицы mysql php. Фото Проверить существование таблицы mysql phpLyoha_22

лучший ответ SELECT * FROM information_schema.tables WHERE table_name = ‘Имя таблицы’ LIMIT 1

Проверить существование таблицы mysql php. Смотреть фото Проверить существование таблицы mysql php. Смотреть картинку Проверить существование таблицы mysql php. Картинка про Проверить существование таблицы mysql php. Фото Проверить существование таблицы mysql phpdasm32

SELECT * FROM information_schema.tables WHERE table_name = ‘таблица’ LIMIT 1
Если есть доступ к information_schema

SHOW TABLES FROM база LIKE ‘таблица’ вот еще вариант

Проверить существование таблицы mysql php. Смотреть фото Проверить существование таблицы mysql php. Смотреть картинку Проверить существование таблицы mysql php. Картинка про Проверить существование таблицы mysql php. Фото Проверить существование таблицы mysql phpWebMikE

Вот есть такая функция:
http://nopaste.info/58474a7f3d.html

Проверить существование таблицы mysql php. Смотреть фото Проверить существование таблицы mysql php. Смотреть картинку Проверить существование таблицы mysql php. Картинка про Проверить существование таблицы mysql php. Фото Проверить существование таблицы mysql phpKOCT

$query = mysql_query(«SELECT * FROM ТАБАНЕЙМ
//а дальше
if($query) <

Источник

Как проверить, существует ли таблица MySQL с PHP?

Как просто в теории, как это звучит, я провел немало исследований, и мне трудно понять это.

Как проверить, существует ли таблица MySQL и что она делает что-то. (Думаю, для этого может работать простой оператор php if/else)

Есть ли способ сделать это?

Это то, что я сделал с ответом cwallenpoole:

По общему признанию, это больше Pythonic, чем PHP-идиома, но, с другой стороны, вам не нужно беспокоиться о большом количестве дополнительных данных.

Изменить

Итак, этот ответ был отмечен как минимум дважды с момента, когда я пишу это сообщение. Предполагая, что я совершил некоторую гигантскую ошибку, я пошел, и я провел некоторые тесты, и именно это я обнаружил, что мое решение на 10% быстрее чем ближайшая альтернатива, когда таблица не существует, и она на 25% быстрее, когда таблица существует:

Я попытался запустить это против DESC, но у меня был тайм-аут после 276 секунд (24 секунды для моего ответа, 276, чтобы не завершить описание не существующей таблицы).

Для хорошей оценки я сравниваю схему с четырьмя таблицами, и это почти новая установка MySQL (пока это единственная база данных). Чтобы увидеть экспорт, посмотрите здесь.

И ДАЛЕЕ

Это конкретное решение также более независимо от базы данных, поскольку тот же запрос будет работать в PgSQL и Oracle.

НАКОНЕЦ

mysql_query() возвращает FALSE для ошибок, которые не являются «эта таблица не существует».

Источник

Как проверить наличие записей в таблице MySQL через PHP?

Функция проверяет, есть ли уже в таблице ‘users’ запись о пользователе. Но функция дает ошибку: при вызове она всегда возвращает ‘true’, хотя никакой записи о пользователе в таблице еще нет. Из-за этого данные, переданные через форму, так и не попадают в базу данных. Может быть я неправильно проверяю результат выполнения запроса в функции?

P.S. Вот условие, в котором вызывается функция:

Проверить существование таблицы mysql php. Смотреть фото Проверить существование таблицы mysql php. Смотреть картинку Проверить существование таблицы mysql php. Картинка про Проверить существование таблицы mysql php. Фото Проверить существование таблицы mysql php

Проверить существование таблицы mysql php. Смотреть фото Проверить существование таблицы mysql php. Смотреть картинку Проверить существование таблицы mysql php. Картинка про Проверить существование таблицы mysql php. Фото Проверить существование таблицы mysql php

Это очень распространенная ошибка.
И очень нелогичная.

Ты, когда запрашиваешь выписку в банке чтобы узнать, есть ли у тебя деньги, на что смотришь? Просто на то пришла ли выписка, или нет? Серьёзно? Или все-таки смотришь в саму выписку, какие там цифры?

Чтобы узнать, еслть ли в таблице данные, нельзя запрашивать все строки. А представь что ты наконец освоишь программирование и на твоем сайте будет миллион пользователей. Будешь всех запрашивать в РНР чтобы узнать, есть ли хоть один?

Кроме того, забудь про global. Привыкай всегда понимать, откуда и куда у тебя идут переменные, чтобы четко знать какая переменная у тебя что содержит и откуда взялась. А не просто с неба свалилась. Пеередавай переменные в функцию только через параметры

Источник

Проверьте, существует ли таблица в SQL Server

Я хотел бы, чтобы это было окончательное обсуждение того, как проверить, существует ли таблица в SQL Server 2000/2005 с помощью инструкции SQL.

когда вы Google для ответа, вы получите столько разных ответов. Есть ли официальный / назад и вперед совместимый способ сделать это?

здесь два возможных способа сделать это. Какой из них является стандартным / лучшим способом сделать это?

в MySQL обеспечивает простой

заявление. Я ищу нечто подобное.

22 ответов

для таких запросов всегда лучше использовать INFORMATION_SCHEMA вид. Эти представления (в основном) стандартны для многих различных баз данных и редко меняются от версии к версии.

чтобы проверить, существует ли таблица, используйте:

также обратите внимание, что если по какой-либо причине вам нужно проверить временную таблицу, вы можете сделать это:

мы всегда использовать OBJECT_ID стиль, сколько я помню

пожалуйста, смотрите ниже подходы,

подход 1: Использование INFORMATION_SCHEMA.Вид таблиц

мы можем написать запрос, как показано ниже, чтобы проверить, существует ли таблица Customers в текущей базе данных.

подход 2: Использование функции OBJECT_ID ()

мы можем использовать функцию OBJECT_ID (), как показано ниже, чтобы проверить, существует ли таблица Customers в текущей базе данных.

Подход 3: Использование системный.Просмотр Каталога Объектов

мы можем использовать Sys.Посмотреть каталог объектов для проверки существования таблицы, как показано ниже:

подход 4: Использование sys.Вид Каталога Таблиц

мы можем использовать Sys.Представление каталога таблиц для проверки существования таблицы, как показано ниже:

подход 5: Избегайте использования sys.системной таблице sysobjects таблице

мы должны избегать использования sys.системной таблице sysobjects стол непосредственно прямой доступ к нему будет устаревшим в некоторых будущих версиях Sql Server. Согласно ссылке Microsoft BOL, Microsoft предлагает использовать представления каталога sys.объекты/системы.таблицы вместо sys.системная таблица sysobjects напрямую.

Источник

MySQL, проверьте, существует ли столбец в таблице с SQL

Я думал что-то вроде

будет работать, но это плохо удается. Есть ли способ?

10 ответов:

С PHP это было бы что-то вроде.

Спасибо за пример SQL. Я попробовал запрос, и я думаю, что он нуждается в небольшом изменении, чтобы заставить его работать должным образом.

это сработало для меня.

Ниже приведен другой способ сделать это с помощью простого PHP без базы данных information_schema:

выберите просто column_name из информационной схемы и поместите результат этого запроса в переменную. Затем проверьте переменную, чтобы решить, нуждается ли таблица в изменении или нет.

P. S. Не забудем указать TABLE_SCHEMA для столбцов таблицы, а также.

просто чтобы помочь всем, кто ищет конкретный пример того, что @Mchi описывал, попробуйте что-то вроде

SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ‘my_table’ AND COLUMN_NAME = ‘my_column’

если он возвращает false (нулевые результаты), то вы знаете, что столбец не существует.

Я бросил эту хранимую процедуру вместе с началом от комментариев @lain выше, вроде приятно, если вам нужно вызвать его больше, чем несколько раз (и не нужно php):

работает с fieldExists

Я использую этот простой скрипт:

это работает, если вы уже подключены к базе данных.

большое спасибо Mfoo, который поставил действительно хороший скрипт для динамического добавления столбцов, если он не существует в таблице. я улучшил его ответ с PHP. Элемент скрипт дополнительно поможет вам найти, сколько таблиц на самом деле нужно «добавить столбец» mysql comand. Просто попробуйте рецепт. Работает как шарм.

эта работа для меня с образцом PDO:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *