如何使用 PHP 在 MySQL 中创建表?
Posted
技术标签:
【中文标题】如何使用 PHP 在 MySQL 中创建表?【英文标题】:How to create a table in MySQL using PHP? 【发布时间】:2017-01-10 16:52:28 【问题描述】:我想用 php 在 mysql 数据库中创建一个表。这是我的尝试:
$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_connect
和 mysql_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 中创建表?的主要内容,如果未能解决你的问题,请参考以下文章
我应该啥时候创建 php 文件来在 mysql 数据库中创建表?