0

我写了一个简单的代码,它应该检查输入字段是否为空,如果不为空,则在该字段中输入的内容应该是新创建的数据库表的名称。但是我遇到了代码需要检查具有该名称的表是否已经存在的部分的问题。这是我到目前为止所拥有的:

include 'conn.php';

$entry_name = $_POST['entry_name'];

// Check if the field is empty

if(empty($_POST['entry_name'])) {
    echo "Please, fill the name field!";  
}

// If the field is full
else {
    // Check for the duplicated table names 

    $result = mysql_query(**???**);
    if($result == $entry_name) {
        die("Entry with that name already exists, choose a different name!");
    }

    // If there are no tables with entered name, create the new table
    else {
        $entry_name = mysql_real_escape_string($_POST['entry_name']);
        mysql_query("CREATE TABLE `" . $entry_name . "` ( first VARCHAR(30), second VARCHAR(30))");

        echo "$entry_name created successfully!";
    }

}

带问号的部分是我不知道该怎么做的地方。

4

1 回答 1

0

最好的方法是查询信息模式数据库。它包含有关现有数据库和表的所有信息。但只有mysql 5。

SELECT * 
FROM  `TABLES` 
WHERE  `TABLE_SCHEMA` =  'your_database_name'
AND  `TABLE_NAME` =  'your_table_name'

改变你$result = mysql_query(**???**);

$result = mysql_query('SELECT * FROM  `TABLES` WHERE  `TABLE_SCHEMA` =  "your_database_name" AND  `TABLE_NAME` =  "'. $entry_name .'");

然后

if (mysql_numrows($result) !== 0)

不要忘记更改your_database_name数据库名称
哦,不要忘记清理您的 $entry_name。mysql_escape_string

于 2013-02-21T22:30:45.187 回答