Проверьте, существует ли столбец в таблице Mysql через php

Я создал таблицы mysql, и там я поместил несколько столбцов.

Теперь я хочу проверить, что определенный столбец существует в базе данных через php.

Вот так:

if (column exist){
echo "Column in table is available."
}
else{
echo "Column doesnt exist.";
}

Можно ли это сделать?

Большое спасибо за ваше время:)

Ответ 2

Предположим, что вы хотите найти клиента, который разместил хотя бы один заказ на продажу, вы можете использовать оператор EXISTS следующим образом:

SELECT customerNumber,
         customerName
FROM customers
WHERE EXISTS
    (SELECT 1
    FROM orders
    WHERE orders.customernumber = customers.customernumber);

Для каждой строки в таблице клиентов запрос проверяет customerNumber в таблице заказов.

Если в таблице заказов существует customerNumber, который отображается в таблице клиентов, подзапрос возвращает первую соответствующую строку. В результате оператор EXISTS возвращает true и прекращает сканирование таблицы заказов. В противном случае подзапрос не возвращает строки, а оператор EXISTS возвращает false.

Чтобы получить клиента, который не разместил заказы на продажу, вы используете оператор NOT EXISTS в качестве следующего утверждения:

SELECT customerNumber,
         customerName
FROM customers
WHERE NOT EXISTS
    (SELECT 1
    FROM orders
    WHERE orders.customernumber = customers.customernumber);

Ответ 3

Вы можете использовать mysql_list_fields и mysql_num_fields для получения столбцов таблицы

$fields = mysql_list_fields('database_name', 'table_name');
$columns = mysql_num_fields($fields);

Ответ 4

В PHP:

$fields = mysql_list_fields('database_name', 'table_name');
$columns = mysql_num_fields($fields);
for ($i = 0; $i < $columns; $i++) {$field_array[] = mysql_field_name($fields, $i);}

if (!in_array('price', $field_array))
{
$result = mysql_query('ALTER TABLE table_name ADD price VARCHAR(10)');
}

Это также поможет вам:

IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = ‘TEST’ AND COLUMN_NAME = ‘TEST_DATE’)
BEGIN
  ALTER TABLE TEST ADD TEST_DATE DATETIME
END

Или вы можете сделать:

Show columns from table like 'string';

Проверьте этот вопрос: Как проверить, существует ли столбец таблицы mysql?

Ответ 5

If your database is MySQL then, you can use mysql_field_name() and mysql_fetch_field() function in php.

$res = mysql_query('select * from customer', $link);

echo mysql_field_name($res, 0); // print cust_id
echo mysql_field_name($res, 1); // print cust_name 
echo mysql_field_name($res, 2); // print cust_age

Ответ 6

Запустите этот запрос в php и проверьте, если количество строк > 0: - DESC tablename '% columns_name%'

Ответ 7

Хорошо, я потратил 5 часов на эту проблему, просматривая каждый (иногда смехотворно запутанный) ответ StackOverflow, никогда не находя рабочего ответа, и ответ настолько разочаровывающе прост, что вы ударите себя (как я):

PHP 7

$mysqli = new mysqli($mysql_url, $mysql_user, $mysql_password, $db_name);

$column_name = "my_column";
$table_name = "my_table";

if ($mysqli->query("SELECT $column_name FROM $table_name")){
        //my_column exists in my_table
    }
else{
        //my_column doesn't exist in my_table
}

Базы данных 101....

Ответ 8

Это просто, но у меня работает:

1) Выберите все из таблицы, которую вы хотите.

$qry = "SELECT * FROM table";

2) Принесите результат и проверьте, существует ли поле.

if( $result = $mysqli->query($qry)  &&  isset($result['field_you_want']) ){
    //Exists
}else{
    //Doesn't exists
}