如何使用PHP在MySQL中添加一个新列


How to add a new column in MySQL using PHP?

如何使用PHP在MySQL中添加新列?我试着做了好几个小时,但我不能解决我的问题。代码:

<?php
$DB_HOST = "localhost";
$DB_USER  = "xxxxxx";
$DB_PASSWORD = "xxxxxx";
$DB_NAME = "xxxxxx";
$connect = mysql_connect($DB_HOST,$DB_USER,$DB_PASSWORD);
$db="test_table";
if (! $connect)
die(mysql_error());
mysql_select_db($db , $connect) or die("Select Error: ".mysql_error());
$result=mysql_query("ALTER TABLE id
ADD street VARCHAR(30) AFTER birthday,
Add city VARCHAR(30) AFTER street,
ADD state VARCHAR(4) AFTER city,
ADD zipcode VARCHAR(20) AFTER state,
ADD phone VARCHAR(20) AFTER zipcode") or die("Alter Error: ".mysql_error());
mysql_close($connect);
print "Field added";
?>
当我测试这段代码时,出现了一个错误:

选择错误:用户'xxxxxxxxxxxx'@'localhost'访问数据库'test_table'被拒绝

我该怎么做呢?

首先,请确保您的用户具有此处所描述的权限所以这里的问题

可能需要像这样运行一些mysql:

GRANT ALTER ON example_table TO 'someuser'@'somehost';

那么类似于下面的代码应该可以工作。

<?php
    $db = new mysqli('localhost','USERNAME','PASSWORD','DATABASENAME');
    $sql = '
        ALTER TABLE id
        ADD street VARCHAR(30) AFTER birthday,
        Add city VARCHAR(30) AFTER street,
        ADD state VARCHAR(4) AFTER city,
        ADD zipcode VARCHAR(20) AFTER state,
        ADD phone VARCHAR(20) AFTER zipcode';
    try {
        $r = $db->prepare($sql);
        $r->execute();
    }
    catch(Exception $e) {
        error_log(print_r($e->getMessage(),1).' '.__FILE__.' '.__LINE__, 0);
    }

你的MySQL用户没有访问你的数据库的权限,但是你可以连接到你的MySQL服务器(它会返回一个错误消息)并登录。

这意味着用户没有特权使用您的数据库test_table,请再次检查数据库名称(在您的示例中,您提供了一个表名称,确保您使用的是数据库名称而不是表名称!)。另外,如果它是您的服务器,您可以使用root帐户尝试。

这不是代码的问题,而是身份验证的问题。请务必使用正确的信息