如何获取现有表名并将其与新创建的表进行比较';谁的名字(PHP5)?
我编写了一个简单的代码,用来检查输入字段是否为空,如果不是空的,则在该字段中输入的内容应该是新创建的数据库表的名称。但是我遇到了一个问题,代码需要检查具有该名称的表是否已经存在。这就是我到目前为止所做的:如何获取现有表名并将其与新创建的表进行比较';谁的名字(PHP5)?,php,mysql,Php,Mysql,我编写了一个简单的代码,用来检查输入字段是否为空,如果不是空的,则在该字段中输入的内容应该是新创建的数据库表的名称。但是我遇到了一个问题,代码需要检查具有该名称的表是否已经存在。这就是我到目前为止所做的: include 'conn.php'; $entry_name = $_POST['entry_name']; // Check if the field is empty if(empty($_POST['entry_name'])) { echo "Please, fill
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!";
}
}
带问号的部分是我不知道该做什么的地方。最好的方法是查询数据库。它包含关于现有数据库和表的所有信息。但是mysql只有5个
SELECT *
FROM `TABLES`
WHERE `TABLE_SCHEMA` = 'your_database_name'
AND `TABLE_NAME` = 'your_table_name'
更改您的$result=mysql\u查询(**???**)代码>到
$result = mysql_query('SELECT * FROM `TABLES` WHERE `TABLE_SCHEMA` = "your_database_name" AND `TABLE_NAME` = "'. $entry_name .'");
及
if (mysql_numrows($result) !== 0)
不要忘记将您的\u数据库\u名称
更改为您的数据库名称
哦,别忘了清理你的$entry\u名称 使用SHOW TABLES
并遍历结果数组。您的代码对于SQL injection.Stop来说也是一个成熟的选择。使用PDO/MySQLi,然后重新提问<代码>mysql*
函数已弃用。(事实上,重新编程太远了。但是说真的,如果您使用的是PHP5,请删除ext/mysql函数)PHP5的哪个版本。现在几乎所有的PHP都是PHP5,但PHP5.1、5.2、5.3等之间有很大的区别。我的答案解决了你的问题吗?我使用的是MySQL 5,但你能在我的代码中举例说明这段代码吗?我从理论上理解它,但由于我还是一个PHP初学者,我在代码中插入它时遇到了问题,我总是在IDE中遇到一些语法错误。ext/mysql不推荐使用。对PHP5来说,使用它是一个可怕的想法。我知道它已被弃用,而且之前也提到过。但杰伊·奎尔用过它。将这个项目改写成mysqli将是他的家庭任务。但是,如果我用mysqli编写示例,如果不更改所有prev,它将根本无法工作。代码。这里有一个好消息,我们可以在我的示例中将mysql更改为mysqli,但没有任何更改。我应该将“if(mysql_numrows($result)!==0”放在哪里?无论我把它放在哪里,在提交我的条目后,我总是会得到“警告:mysql\u numrows()期望参数1是resource,该行中给出的布尔值”。