开发者

PHP MySQLi isn't letting me alter a table (adding a new column)

Well thats pretty much it.

This is my query:

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

Where $name is already checked to exist with only lower case alpha letters, and not more than 20 length. Im just starting this out with very simple names.

The next 4 lines of code after that one are:

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

And I get back, every time

ERROR: Unsuccessful query:

And no error message. Is there a way to get more error messages so I can see what is failing? I can add new columns through phpmyadmin, but that really doesnt help me at all.

The $db is fine, i do lots of stuff before and after this one section. It is only adding new column to the table that fails.

  • side question: prepare() rejected my query every time 开发者_如何转开发when i tried to make those 2 variables, the $name and the 0 value as ? ? prepared statement values. Thats why they are in the real query and not bound later. If i could change that too I would like that.


Try to replace;

$db->error  to  $stmt->error

And put this before the close().


worth checking you're not trying to use a column or table name that is 'reserved'. for example you cant have a col called 'lon' or 'host'

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜