Mysql tablo alan bile var olmadığını nasıl kontrol edebilirim?
Sütun adı 'fiyat' olduğunu ve eğer varsa görmek gerekir.
'Var' nasıl çalıştığını gerçekten anlamış değil ...
Herhangi örnekleri veya fikirler?
Teşekkürler
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)');
}
Bu da size yardımcı olacaktır:
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
Ya da yapabilirsiniz:
Show columns from table like 'string';
Önce SO here üzerine yöneltilen benzer bir soru olmuştur.
Burada da belirli bir sütun var olup olmadığını kontrol etmek için bir işlevdir.
public function detect_column($my_db, $table, $column)
{
$db = mysql_select_db($my_db); //select the database
$sql = "SHOW COLUMNS FROM $table LIKE '$column'"; //query
$result = mysql_query($sql); //querying
if(mysql_num_rows($result) == 0) //checks the absence of column
echo "column $column doesn't exist !";
// write your code here!
else
echo "column $column exists!";
}
Bir çerçeve iş tasarımı ise de, daha sonra bu fonksiyon senin yardımına gelebilir. $ Bayrak '1 've '0 $ bayrak ayarlanır sütunun yokluğu' ayarlanır sütunun varlığı için bu fonksiyon kontrolleri.
public function detect_column($my_db, $table, $column, $flag)
{
$this->select_db($my_db); //select the database
$sql = "SHOW COLUMNS FROM $table LIKE '$column'";
$result = mysql_query($sql);
if(mysql_num_rows($result) == $flag)
return true;
else
return false;
}