检查php是否存在mysgl表

时间:2017-02-16 06:55:38

标签: php mysql

首先:我知道之前已经问过这个问题,但我现在正在寻找一个工作解决方案一个多星期了,我找不到一个。所以,任何人都可以帮助我,而不是仅仅将我的问题标记为重复吗?谢谢!!

所以问题是:我正在尝试检查我的数据库中是否存在mysql表(使用php)。有谁知道我怎么能解决这个问题?这是我的代码:

<form id="newChat" method="post">
    Start a new chat: 
    <input type="text" name="name" />
    <input type="submit" value="Search" />
</form>

<?php
function checkChat($me, $friend) {
    global $conn;
    $chatid = findChat($me, $friend);

    $sql  = 'SHOW TABLES FROM chatboxDB LIKE \'chat10\'';
    $result = mysqli_query($conn, $sql) or trigger_error(mysql_error()." in ".$query);

    if ($result > 0) {
        echo '<script>alert("It works.");</script>';
    }
}

if (isset($_POST)) {
    $friend = checkInput($_POST["name"]);
    unset($_POST["name"]);
    checkChat($me, $friend);
}
?>

一些评论:

  • mysqli_query()函数适用于我的代码的其他部分
  • 连接$ conn到我的数据库
  • 问题似乎出现在if ($result > 0) - &gt;这似乎永远是真的......

编辑:这是我的代码,它正在运行: (我发现它可以做得更简单了)

<?php
function checkChat($me, $friend) {
    global $conn, $dbname;
    $chatid = findChat($me, $friend); # the findChat() is a query to find the name of a chat by giving the 2 persons from that chat, if one of those 2 persons does not exist, findChat will return nothing)

    if (!$chatid) {
        # the chat does not exist
    }
}

if (isset($_POST)) {
    $friend = checkInput($_POST["name"]);
    $_POST = array();
    checkChat($me, $friend);
}
?>

2 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

SELECT * 
FROM information_schema.tables
WHERE table_schema = 'yourdb' 
    AND table_name = 'testtable'
LIMIT 1;

或者,您可以使用SHOW TABLES

SHOW TABLES LIKE 'yourtable';

如果结果集中有一行,则表格不存在。

答案 1 :(得分:0)

mysqli_query应该通过任何mysqli_fetch_XXXXX函数来处理

$sqlresult = mysqli_fetch_array($result, MYSQLI_NUM);

然后比较

if ($sqlresult) {
    echo '<script>alert("It works.");</script>';
}