我想按应用创建表格,如果没有这样的表格。但是第一次这样做......需要一些帮助,那么
//connecting...
$mysqli = new mysqli($db_params['host'], $db_params['login'], $db_params['pass'], $db_params['name']);
if ($mysqli->query("SHOW TABLES LIKE `products`")){
echo ' YES';
} else echo 'no';
总是说NO。
答案 0 :(得分:5)
阅读他们的文档? https://dev.mysql.com/doc/refman/5.5/en/replication-features-create-if-not-exists.html似乎你可以轻松地做到这一点:
CREATE TABLE IF NOT EXISTS `products`
这样您就不必先检查表是否存在,如果不存在则只创建一个表。
似乎你有一个语法错误,这可能是你的代码一直返回“否”的原因。这应该有效:
SHOW TABLES LIKE 'products';
只需使用单引号或双引号,不需要`
等反引号。
您对表格和列名称使用反引号(`
),对于字符串使用单引号('
)或双引号("
),在这种情况下,您将给出一个字符串,以便您应该使用单引号或双引号。
答案 1 :(得分:1)
如果表格不存在,您可以使用
CREATE TABLE IF NOT EXISTS
答案 2 :(得分:1)
使用PHP DESCRIBE 语句。
if(mysql_query("DESCRIBE `table_name`")) {
// Exists
}
答案 3 :(得分:-1)
此解决方案适用于我JUST FINE:
<?php
// connect to the "tests" database
$conn = new mysqli('localhost', 'root', 'pass', 'tests');
// check connection
if (mysqli_connect_errno()) {
exit('Connect failed: '. mysqli_connect_error());
}
// SQL query
$sql = "SHOW TABLES IN `tests`";
// perform the query and store the result
$result = $conn->query($sql);
// if the $result not False, and contains at least one row
if($result !== false) {
// if at least one table in result
if($result->num_rows > 0) {
// traverse the $result and output the name of the table(s)
while($row = $result->fetch_assoc()) {
echo '<br />'. $row['Tables_in_tests'];
}
}
else echo 'There is no table in "tests"';
}
else echo 'Unable to check the "tests", error - '. $conn->error;
$conn->close();
?>
有关完整和更多示例,请参阅源代码:http://coursesweb.net/php-mysql/check-table-exists-database_t