PHP MySQLi不允许我改变表(添加新列)

时间:2010-06-09 17:30:15

标签: php mysql mysqli

那就好了。

这是我的疑问:

$query = 'ALTER TABLE permissions ADD '.$name.' INT NOT NULL DEFAULT \'0\'';

其中$ name已经检查过,只有小写字母字母,长度不超过20。我只是以非常简单的名字开始这个。

接下来的4行代码是:

if($stmt = $db -> prepare($query))
{
    $success = $stmt -> execute();
    $stmt -> close();
    if(!$success)
        echo 'ERROR: Unsuccessful query: ',$db->error,PHP_EOL;
}

我每次都会回来

ERROR: Unsuccessful query:

并且没有错误消息。有没有办法获得更多错误消息,以便我可以看到失败的是什么?我可以通过phpmyadmin添加新列,但这根本不能帮助我。

$ db很好,我在这一节之前和之后做了很多东西。它只是向失败的表添加新列。

  • 附带问题:每当我尝试将这两个变量,$ name和0值作为?时,prepare()拒绝了我的查询? ?准备好的陈述值。这就是为什么他们在真正的查询中,而不是以后绑定。如果我可以改变它,我也希望如此。

2 个答案:

答案 0 :(得分:2)

尝试替换;

$db->error  to  $stmt->error

在关闭之前把它放在()。

答案 1 :(得分:0)

值得检查您是不是要尝试使用“保留”的列名或表名。例如,你不能有一个名为'lon'或'host'

的col