首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP和MySQLi检查该表是否存在以及是否不创建该表

问PHP和MySQLi检查该表是否存在以及是否不创建该表
EN

Stack Overflow用户
提问于 2015-02-27 09:54:26
回答 2查看 3.6K关注 0票数 2

尝试使用此命令检查表是否存在以及是否未创建表

代码语言:javascript
复制
if ( !f_tableExists($table, DB_NAME) ) {
    $sql = "CREATE TABLE $table (
        ID int NOT NULL AUTO_INCREMENT,
        PRIMARY KEY(ID),
        timestamp int NOT NULL,
        ip int NOT NULL
    )";

    $result = mysqli_query($sql);

    if (!$result) {
        die('Invalid query: ' . mysqli_error());
    }

}

其中,f_tableExists执行以下操作来检查它是否存在。

代码语言:javascript
复制
function f_tableExists($tablename, $database = false) {

if(!$database) {
    $res = mysqli_query("SELECT DATABASE()");
    $database = mysqli_data_seek($res, 0);
}

$res = mysqli_query("
    SELECT COUNT(*) AS count
    FROM information_schema.tables
    WHERE table_schema = '$database'
    AND table_name = '$tablename'   
");

return mysqli_data_seek($res, 0) == 1;
}

正在获取结果“Invalid query:”

没有创建表,因此我假设我的一些mysqli查询代码(CREATE TABLE....ip int NOT NULL)或(SELECT COUNT...= '$tablename')或其他位是错误的和/或不起作用?我不知道是哪一位或者为什么?

EN

回答 2

Stack Overflow用户

发布于 2015-02-27 09:56:28

只需将查询与IF NOT EXISTS一起使用,而不检查

http://dev.mysql.com/doc/refman/5.5/en/create-table.html

代码语言:javascript
复制
  $sql = "CREATE TABLE IF NOT EXISTS $table (
        ID int NOT NULL AUTO_INCREMENT,
        PRIMARY KEY(ID),
        timestamp int NOT NULL,
        ip int NOT NULL
    )";

此外,还需要将连接传递到mysqli_query

另注:http://www.bash.org/?725783

票数 4
EN

Stack Overflow用户

发布于 2016-11-28 10:38:13

嘿,这是你该怎么做的:

创建mysqli php连接:

代码语言:javascript
复制
<?php
$__DATABASE__='centralfeed_feed';
$__USER__='root';
$__PASSWORD__='';
$__HOST__='localhost';

$con=mysqli_connect($__HOST__,$__USER__,$__PASSWORD__,$__DATABASE__);

?>

然后,向数据库发出mysqli请求:

代码语言:javascript
复制
<?php

     if(mysqli_query($con,"DESCRIBE  users ")){
        echo "exists";
    }else{
        echo "dont exists";
    }
    mysqli_close($con);
    exit;
 ?>

然后你就完成了!!

永远记住,当你使用完它们的时候,关闭连接,或者注意使用它们的连接,不仅仅是在php mysqli中,而是一直在使用(在其他语言中也是如此)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28756236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档