2014-05-07 14 views
9

Tôi đã tạo các bảng mysql và ở đó tôi đã đặt một số cột.Kiểm tra xem cột có tồn tại trong bảng Mysql không thông qua php

Bây giờ tôi muốn kiểm tra xem một cột nhất định có tồn tại trong cơ sở dữ liệu thông qua php hay không.

Như thế này:

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

Có thể làm điều này?

Rất nhiều nhờ thời gian của bạn :)

+0

Làm thế nào tôi có thể tạo người bạn đời truy vấn? – user3611408

+0

có thể trùng lặp của [MySQL, Kiểm tra xem một cột có tồn tại trong một bảng có SQL không] (http://stackoverflow.com/questions/3395798/mysql-check-if-a-column-exists-in-a-table-with -sql) – lighter

Trả lời

24

thử

$result = mysql_query("SHOW COLUMNS FROM `table` LIKE 'fieldname'"); 
$exists = (mysql_num_rows($result))?TRUE:FALSE; 
if($exists) { 
    // do your stuff 
} 

Để biết thêm: - MySQL, Check if a column exists in a table with SQL

Lưu ý: - mysql_ * là bị phản đối sử dụng mysqli hoặc PDO

+1

mysql_ * không được chấp nhận – Daan

+0

Cảm ơn @Danan tôi đang cập nhật câu trả lời của tôi –

+0

@Daan Bạn nên chỉ ra rằng OP là OP đã gắn thẻ câu hỏi trong 'mysql'. –

0

Bạn có thể sử dụng mysql_list_fields và mysql_num_fields để lấy các cột của một bảng

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

giống như các phương pháp này được khấu hao trong các phiên bản PHP hiện tại – atwellpub

0

Trong 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)'); 
} 

này cũng sẽ giúp bạn:

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 

Hoặc bạn có thể làm:

Show columns from table like 'string'; 

Kiểm tra câu hỏi này: How can I check if mysql table column even exists?

0
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 
0

Chạy truy vấn này trong php và kiểm tra xem số hàng> 0: - DESC tablename '% columns_name%'

Các vấn đề liên quan