我试图查看表格是否已经存在然后采取相应措施。我无法通过查看以前的帖子来解决我的问题。我意识到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;
}
答案 0 :(得分:0)
您需要在查询中围绕表名称引用。
$sql = "SHOW TABLES LIKE '$thisTable'";