2010-06-09 30 views
1

那麼這就是它。PHP 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很好,我在這一節之前和之後做了很多東西。它僅向失敗的表添加新列。

  • side question:prepare()每次當我試圖使這兩個變量,$ name和0值爲?時,拒絕我的查詢? ?準備好的陳述值。這就是爲什麼他們在真正的查詢中,而不是稍後綁定。如果我可以改變這一點,我想這樣做。
+0

你試過了嗎?如果($ db-> query($ query))'和報廢'準備'? – TheDeadMedic 2010-06-09 17:35:03

+0

就是這樣。我只是把它留在那裏,因爲它的準備工作已經過去了。 現在,查詢經過我得到了我的錯誤消息,我的用戶帳戶沒有更改/刪除權限。 您是否認爲這樣查詢並且不使用預處理語句是安全的?這實際上是我整個網站中我沒有準備查詢的唯一地方。 – asdasd 2010-06-09 17:41:54

回答

2

嘗試替換;

$db->error to $stmt->error 

把這個放在close()之前。

0

值得檢查你沒有試圖使用'保留'的列或表名。例如你不能有一個叫做'lon'或'主機'的上校'