skm
skm

Reputation: 1212

Check if a table exists in mysql

I am trying to check if a table exists, and in that table if a record is available, using mysql in codeigniter. Here is the function I tried but, id doesn't work.

function isRowExist($table, $id)
{
    if(mysqli_query("DESCRIBE {$table}")) {
        $query = $this->db->query("SELECT * FROM {$table} WHERE id = '{$id}'");
    }
    return $query->num_rows();
}

Any help would be appreciated.

Upvotes: 0

Views: 8080

Answers (5)

Binjal Soni
Binjal Soni

Reputation: 21

if ($this->db->table_exists('table_name')) {
   // some logic
}

Only if condition needs

Upvotes: 1

Nevil Saul Blemuss
Nevil Saul Blemuss

Reputation: 345

This code may help:

include 'connection.php';
function createSignupTable()
{
  $conn = $GLOBALS['conn'];
  $error = array('message1' =>'Table created successfuly' , 'message2'=>'Problem creating the table');
  if($conn == true)
  {
    $result = $conn->query("SHOW TABLES LIKE 'signuptable'");
    if($result->num_rows == 1){
        echo "table exists";
    }else{  
        $create_table1 = 'CREATE TABLE signuptable(
            cs_user_id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
            firstname VARCHAR(200) NOT NULL,
            lastname VARCHAR(200) NOT NULL,
            username VARCHAR(200) UNIQUE KEY NOT NULL,
            AKA VARCHAR(200) UNIQUE KEY NOT NULL,
            password VARCHAR(200) NOT NULL,
            email VARCHAR(200) NOT NULL,
            phone_number VARCHAR(200) NOT NULL,
            Date_signed_up TIMESTAMP
        )';
        $query_1 = $conn->query($create_table1);
        if($query_1 == true){
            echo $error["message1"];
        }else{
            die($conn->error);
        }
    }
  }
}
createSignupTable();

Upvotes: 1

Tejas Soni
Tejas Soni

Reputation: 551

You can try this codeigniter function to check table already exist.

   if ($this->db->table_exists('tbl_user')) {
        // table exists (Your query)
    } else {
        // table does not exist (Create table query)          
    }

Upvotes: 5

Shashank Sharma
Shashank Sharma

Reputation: 595

Use this code to check table exists or not in codeigniter

$this->db->table_exists();

You can use this with with conditional statements.

if ($this->db->table_exists('table_name'))
{
     // some code...
} else {
     // not exist
}

Upvotes: 2

prakash tank
prakash tank

Reputation: 1267

You can check whether table exists or not by this function :

if ($result = $mysqli->query("SHOW TABLES LIKE '".$table."'")) {
    if($result->num_rows == 1) {
        echo "Table exists";
    }
}
else {
    echo "Table does not exist";
}

Upvotes: 2

Related Questions