当我在phpMyAdmin中直接运行SQL查询时,它可以工作;但是,从PHP文件运行相同的查询不会影响数据库表,也不会抛出任何错误。
ALTER TABLE tender_230115 ADD avt DECIMAL(10,2) NOT NULL AFTER vpm
PHP Version 5.3.28。确实建立了数据库连接。我跑的时候:
$test_query = "ALTER TABLE tender_230115 ADD avt DECIMAL(10,2) NOT NULL AFTER vpm";
$upload_test = $conn->query($test_query);
数据库表中没有任何影响,而var_dump($ upload_test)= bool(false)。
引号和反引号也没有帮助。使用 mysqli 驱动程序。
答案 0 :(得分:0)
小猪退出@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);
编辑,作者指明了他的问题。这是从这个答案的下面的评论中提取的。将其置于此处,以便更清楚实际问题是什么:
好的,其他要注意的是权限。是mysql用户 在PhpMyAdmin中与您在PHP中使用的用户相同?例如, 您可以使用您的个人帐户登录PhpMyAdmin 可能有一个不同的项目帐户,您正在使用它 mysqli连接。如果是这种情况,请确保您的项目是mysql 帐户拥有ALTER表的权限。
答案 1 :(得分:0)
@Michael Lea Crawford绝对正确地指向用户权限。 Cpanel为您提供了MySQL数据库菜单,用户可以在其中选择用户名并更改权限,以便能够使用来自PHP文件的ALTER TABLE SQL请求。这与UPDATE,CREATE和其他SQL命令相关。