如何使用 PHP 在 MySQL 中创建表?

Posted

技术标签:

【中文标题】如何使用 PHP 在 MySQL 中创建表?【英文标题】:How to create a table in MySQL using PHP? 【发布时间】:2017-01-10 16:52:28 【问题描述】:

我想用 phpmysql 数据库中创建一个表。这是我的尝试:

$dbhost = 'rdbms.strato.de';
$dbusername = 'Userxxx';
$dbuserpass = 'Passwordxxx';
$dbname = 'DBxxx';

$link_id = mysql_connect ($dbhost, $dbusername, $dbuserpass);
echo "success in database connection.";

if (!mysql_select_db($dbname)) die(mysql_error());
echo "success in database selection.";

$result = "CREATE TABLE address_book (first_name VARCHAR(25), last_name VARCHAR(25), phone_number VARCHAR(15))";

if (mysql_query($result))
 echo "TABLE created.";


else 
 echo "Error in CREATE TABLE.";

但这给了我错误

success in database connection.Access denied for user XXX to database XXX

我搜索了很多,但没有找到成功的解决方案。有人有想法吗?

【问题讨论】:

您的 MySQL 用户是否有对该数据库的写入权限?如果没有,请查看此链接:dev.mysql.com/doc/refman/5.7/en/grant.html 似乎不允许您选择 DBxxx。您的用户是否拥有正确的权限? 您当前用于连接的用户$dbusername 无权在选定的DB $dbname 中创建表address_book 你不应该使用任何 mysql_* 函数。它们自 php 5.5 起已被弃用,并在 php 7.0 中完全删除 请注意以上部分内容。错误是在尝试创建表之前 【参考方案1】:

尝试在不涉及 PHP 的情况下进行连接:

mysql -u Userxxx -h rdbms.strato.de -pPasswordxxx

如果这不起作用,我怀疑它不会,请联系您的数据库管理员重置您的密码。

如果密码不是问题,则远程计算机可能尚未准备好接受您的连接。有关更多信息,请参阅Access remote database from command line。

如果你能进去,那就尝试访问你想要的数据库:

USE DBxxx;
SHOW TABLES;

问题是,PHP 不是你的问题。这是连接。这就是要调查的内容。

...当你建立起来时,你可能会考虑更新你的代码; mysql_connectmysql_select_db 已弃用。

【讨论】:

【参考方案2】:

我需要澄清一下您的主机名、用户名、密码、数据库名。以下代码将如何在我的本地服务器上运行。如果您对我的代码有任何疑问,请分享您的主机名、密码、数据库名等。

$dbhost = 'localhost';
$dbusername = 'root';
$dbuserpass = '';
$dbname = 'test';

    $link_id = mysqli_connect ($dbhost, $dbusername, $dbuserpass,$dbname);
echo "success in database connection.";



$result = "CREATE TABLE address_book (first_name VARCHAR(25), last_name VARCHAR(25), phone_number VARCHAR(15))";

if (mysqli_query($link_id,$result))
 echo "TABLE created.";


else 
 echo "Error in CREATE TABLE.";

【讨论】:

以上是关于如何使用 PHP 在 MySQL 中创建表?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MySql 中创建表?

如何在 MySQL 中创建表?

如何在 MySQL 中创建表别名

我应该啥时候创建 php 文件来在 mysql 数据库中创建表?

在 mySQL phpMyAdmin 中创建表后如何查看 Create Table SQL 命令

如何在MySQL中创建表?