PHP检查MySQL表是否存在

时间:2015-09-11 20:27:14

标签: php mysql

我试图查看表格是否已经存在然后采取相应措施。我无法通过查看以前的帖子来解决我的问题。我意识到sql引发错误的次要问题,但我不知道它为什么抛出。当我用实际字符串替换$ thisTable时,它可以工作。但我的主要问题是无法检测表是否存在。

$thisTable = "testX";
$thisTable = preg_replace("/[^A-Z,a-z,0-9]/", '', $thisTable);
try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "SHOW TABLES LIKE ".$thisTable;
    //I get an SQL error here?
    $stmt = $conn->prepare($sql);
    $stmt->execute();
    $isThere = $stmt->num_rows;
    if ($isThere > 0){
        echo "Already exists."
    } else {
        echo "Doesn't exist."
    }
} catch(PDOException $e) {
    echo "Connection failed: " . $e->getMessage() . "<br/>WITH QUERY: " . $sql;
}

1 个答案:

答案 0 :(得分:0)

您需要在查询中围绕表名称引用。

$sql = "SHOW TABLES LIKE '$thisTable'";