2014-01-17 106 views
1

我正在嘗試使用php將表添加到我在MAMP中創建的數據庫中。PHP「數據庫無法連接」MAMP

我在這裏探討這些問題的答案:
Cannot connect to mysql server with MAMP nor with Community Server
Connect to MySQL in MAMP

我還使用一臺服務器上運行此代碼試過,這個免費的託管網站調用。 biz.nf.在那裏我沒有連接錯誤,但沒有創建表。

真的難倒在這裏,將不勝感激任何意見,謝謝。

<?php 

$con = mysql_connect("localhost:3306", "paul", "paul"); 
mysql_select_db("magusblog", $con); 

$table = "ENTRIES"; 
mysql_query("CREATE TABLE IF NOT EXISTS '$table' ('ID' INT NOT NULL AUTO_INCREMENT , PRIMARY KEY ('ID'))"); 
mysql_query("ALTER TABLE '$table' ADD 'PHOTO' TEXT NOT NULL"); 
mysql_query("ALTER TABLE '$table' ADD 'TITLE' TEXT NOT NULL"); 
mysql_query("ALTER TABLE '$table' ADD 'DATE' TEXT NOT NULL"); 
mysql_query("ALTER TABLE '$table' ADD 'CONTENT' TEXT NOT NULL"); 

?> 
+1

如果這是一個新項目,請不要使用mysql_ *函數,因爲它們已被棄用。你應該使用[mysqli](http://us2.php.net/manual/en/class.mysqli.php)或[PDO](http://us2.php.net/manual/en/book.pdo。而不是。 –

+0

@PatrickQ - 你是不是指mysqli? - 他是對的 - 使用mysqli代替 - PDO有點難度,但它也更具可移植性 - 您可能希望查看ORM,如idiorm,propel或doctrine。 –

+1

@ rm-vanda Yup。錯字。編輯。 –

回答

0

所有的查詢都有語法錯誤。你做不是使用'引號來分隔字段名稱。如果您想打擾實際檢查,如果錯誤是存在的,你會被告知這一點:

CREATE TABLE IF NOT EXISTS '$table' ('ID' INT NOT NULL AUTO_INCREMENT , PRIMARY KEY ('ID')) 
          ^-- ^-- ^--^---           ^--^- 

刪除所有指定的報價,在所有的查詢。然後將其重寫爲:

$result = mysql_query(...) or die(mysql_error()); 
+0

非常感謝您,糾正語法錯誤解決了問題。現在,我再也不會把一個反向詞誤認爲''了。感謝您的提示或死亡(mysql_error())。我認爲他們只會出現在Firefox的Web控制檯。 –

0

只是一些語法問題...見下面..剛剛測試併成功創建表。讓我知道如果有任何問題。

<?php 

$table = "ENTRIES"; 
mysql_query("CREATE TABLE IF NOT EXISTS " . $table . " (ID INT NOT NULL AUTO_INCREMENT , PRIMARY KEY (ID))"); 
mysql_query("ALTER TABLE " . $table . " ADD PHOTO TEXT NOT NULL"); 
mysql_query("ALTER TABLE " . $table . " ADD TITLE TEXT NOT NULL"); 
mysql_query("ALTER TABLE " . $table . " ADD DATE TEXT NOT NULL"); 
mysql_query("ALTER TABLE " . $table . " ADD CONTENT TEXT NOT NULL"); 
?>