2012-03-16 297 views
1

我遇到了我的更新腳本的問題。基本上我輸入值到文本框中,當我點擊'添加'這些值被添加到數據庫。php - 添加腳本不工作

目前它允許我輸入整數並將這些添加到數據庫中,但是當我嘗試添加文本時,它不會。數據庫字段類型設置爲VARCHAR(20),這是我的PHP代碼:

public function insert($tableName,$fieldArray,$fieldValues) { 

    $pdo = new SQL(); 
    $dbh = $pdo->connect(Database::$serverIP, Database::$serverPort, Database::$dbName, Database::$user, Database::$pass); 


    $this->sql = "INSERT INTO " . $tableName . " (".implode(',', $fieldArray).") VALUES (".implode(',', $fieldValues).")"; 

try { 
     // Query 
     $stmt = $dbh->prepare($this->sql); 

     $stmt->execute(); 

     $count = $stmt->rowCount(); 

     echo $count.' row(s) inserted by SQL: '.$stmt->queryString; 

     $stmt->closeCursor(); 

    } 

    catch (PDOException $pe) { 
     echo 'Error: ' .$pe->getMessage(). 'SQL: '.$stmt->queryString; 
     die(); 
    } 

    // Close connection 
    $dbh = null; 
} 

請讓我知道我做錯了! :)

回答

2

更改SQL查詢行:

$this->sql = "INSERT INTO " . $tableName . " (`".implode('`, `', $fieldArray)."`) VALUES ('".implode("', '", $fieldValues) . "')"; 

事情是你沒有逃避串用引號。像'someText'

2

您需要將您的字段放在引號中。

把文字這樣

$text = "text"; //How you're doing it now 
$text = "'text'"; //How you ought to (after sql escaping) 

或者試試這個:

$this->sql = "INSERT INTO " . $tableName . " (`".implode('`,`', $fieldArray)."`) VALUES ('".implode("','", $fieldValues)."')"; 
+0

非常感謝:-) – nsilva 2012-03-16 15:52:23