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

时间:2015-01-28 17:56:18

标签: php sql mysqli alter

当我在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 驱动程序。

2 个答案:

答案 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命令相关。