检查mysql中是否存在表

时间:2017-02-22 06:00:45

标签: php mysql codeigniter

我正在尝试检查表是否存在,并且在该表中,如果记录可用,则在codeigniter中使用mysql。 这是我尝试过的功能,但是id不起作用。

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

任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:3)

您可以尝试使用此codeigniter函数来检查已存在的表。

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

答案 1 :(得分:1)

您可以通过此功能检查表是否存在:

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

答案 2 :(得分:1)

使用此代码检查codeigniter中是否存在表格

$this->db->table_exists();

您可以将它与条件语句一起使用。

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

答案 3 :(得分:0)

此代码可能有所帮助:

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();