2012-10-19 71 views
0

我有這個php代碼,沒有錯誤引發,但數據沒有插入到表中,也沒有創建表,請問我可以告訴我哪裏出錯了?未上傳數據的php mysql錯誤

乾杯提前:)

DB_Functions.php

private $db; 

    // constructor 
    function __construct() { 
     require_once 'DB_Connect.php'; 
     // connecting to database 
     $this->db = new DB_Connect(); 
     $this->db->connect(); 
    } 

// destructor 
function __destruct() { 

} 

public function storeUnit($email, $units, $maint, $attent, $done) { 
    $con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die (mysql_error()); 
    mysql_select_db(DB_DATABASE, $con); 

     $format = 'Y-m-d G:i:s'; 
     $date = date($format); 
     $result = mysql_query("CREATE TABLE IF NOT EXISTS $email(Units VARCHAR(10), Finish VARCHAR(20), Attent VARCHAR(200), Maint VARCHAR(200), created_at VARCHAR(30))",$con); 
     $result = mysql_query("INSERT INTO '$email'(Units, Finish, Attent, Maint, created_at) VALUES('$units', '$done', '$attent', '$maint', '$date')"); 
     return true; 
} 
+1

什麼錯誤你好嗎? –

+0

IM沒有得到一個,說白了信息不被incerted到表中,表中沒有創建 – Nick

+1

@Nicholas刪除圍着桌子'CREATE TABLE IF NOT EXISTS $電子郵件名稱的單引號...'[點擊此鏈接](http://sqlfiddle.com/#!2/06dfb)爲例。正如你所看到的查詢已成功構建。嘗試通過添加單引號離子tableName來修改它,它不會生成。 –

回答

2

嘗試使用'而不是'對錶名

$result = mysql_query("INSERT INTO `$email`(Units, Finish, Attent, Maint, created_at) VALUES('$units', '$done', '$attent', '$maint', '$date')"); 

編輯:嘗試找如果你的數據庫使用的InnoDB,你可能使用事務模式......所以,如果自動提交被禁用,您必須提交更改

+0

你真棒!!!!!!!! !它現在!謝謝!!!!堆,我會接受你的答案,當我允許:) – Nick

+0

您可以接受的答案仍然只是點擊打勾(接受註冊)低於這個答案的排名 –

3

這是我的第一篇文章,但我覺得你的代碼或壞OOP的設計爲您的應用程序體系結構不好,但問題是你用錯了引號,以創建表並插入一行。 你需要使用這些符號引用名「`」,例如:

CREATE TABLE `table name` .... 
INSERT INTO `table name` .... 

所以我認爲你必須考慮你的代碼的安全性,使用mysql_real_escape_string

+0

對不起我對於php和mysql來說很新,所以請原諒我的糟糕的版本 – Nick