ALTER TABLE ADD AFTER 适用于 SQL 查询但不适用于 PHP

ALTER TABLE ADD AFTER works in SQL query but not in PHP

当我 运行 SQL 直接在 phpMyAdmin 中查询时它有效;但是,运行从 PHP 文件中执行相同的查询不会影响数据库 table,也不会抛出任何错误。

ALTER TABLE tender_230115 ADD avt DECIMAL(10,2) NOT NULL AFTER vpm

PHP 版本 5.3.28。确实建立了数据库连接。当我 运行:

$test_query = "ALTER TABLE tender_230115 ADD avt DECIMAL(10,2) NOT NULL AFTER vpm";
$upload_test = $conn->query($test_query);

数据库 table 中没有任何影响,而 var_dump($upload_test) = bool(false).

引号和反引号也无济于事。使用 mysqli 驱动程序。

小猪放弃@Keo 和@Mihai 上面所说的内容,您的代码需要是:

$existing_tender = "tender_230115"; 
$existing_user = "avt"; 
$penultimate_name = "vpm";
$insert_column = "ALTER TABLE `$existing_tender` ADD `$existing_user` DECIMAL(10,2) NOT NULL AFTER `$penultimate_name`";
$upload = $conn->query($insert_column);

要查看有关发生的错误的更多信息,您可以在上面的代码下方添加以下代码:

var_dump($conn->error);

编辑 作者指出他的问题是什么。这是从下面对此答案的评论中提取的。把它放在这里是为了更清楚实际的问题是什么:

Ok, so something else to look into is permissions. Is the mysql user in PhpMyAdmin the same as the user you are using in PHP? For example, you might login to PhpMyAdmin with your personal account, however you might have a different project account that you are using for your mysqli connection. If this is the case, ensure that your project mysql account has permissions to ALTER tables.

@Michael Lea Crawford 在 用户权限 方面绝对是正确的。 Cpanel 为您提供 MySQL 数据库菜单,用户可以在其中选择他的用户名并更改权限,以便能够使用来自 PHP 文件的 ALTER TABLE SQL 请求。这同样适用于 UPDATE、CREATE 和其他 SQL 命令。