Ne bir tablo istisna atma olmadan (PHP tercihen PDO) MySQL varsa kontrol etmek için en iyi yoldur. Ben ve saire "GİBİ GÖSTER TABLOLAR" sonuçlarını ayrıştırma gibi hissetmiyorum. Boolean sorgu çeşit olmalı?
Daha sonra MySQL 5.0 kullanıyorsanız ve ediyorsanız deneyebilirsiniz:
SELECT COUNT(*)
FROM information_schema.tables
WHERE table_schema = '[database name]'
AND table_name = '[table name]';
Herhangi bir sonuçlar tablo mevcut göstermektedir.
Gönderen: http://www.electrictoolbox.com/check-if-mysql-table-exists/
Bu kimse bu soruya aramak için geliyor sadece eğer nakledilir. Onun biraz cevaplanmış olsa. Cevaplardan bazıları olması gerekenden daha daha karmaşık hale getirmektedir.
Mysql için * I kullandı:
if (mysqli_num_rows(
mysqli_query(
$con,"SHOW TABLES LIKE '" . $table . "'")
) > 0
or die ("No table set")
){
PDO'de kullandım:
if ($con->query(
"SHOW TABLES LIKE '" . $table . "'"
)->rowCount() > 0
or die("No table set")
){
Bu ben sadece başka içine durumu veya itin. Ve benim ihtiyaçları için ben sadece sadece ölmek gerekir. Ayarlamak veya başka şeyler olabilir rağmen. Bazı if / else if / else tercih edebilirsiniz. Hangi sonra kaldırmak ya da ve ardından if / else if / else kaynağı.
Burada saklanan prosedürleri kullanırken tercihim benim çözümdür. Tablo kontrol için özel mysql fonksiyonu mevcut kaydedilmedi.
delimiter $$
CREATE FUNCTION TABLE_EXISTS(_table_name VARCHAR(45))
RETURNS BOOLEAN
DETERMINISTIC READS SQL DATA
BEGIN
DECLARE _exists TINYINT(1) DEFAULT 0;
SELECT COUNT(*) INTO _exists
FROM information_schema.tables
WHERE table_schema = DATABASE()
AND table_name = _table_name;
RETURN _exists;
END$$
SELECT TABLE_EXISTS('you_table_name') as _exists