2012-03-16 17 views
1

私の更新スクリプトに問題があります。基本的には、テキストボックスに値を入力し、「追加」をクリックすると、これらの値がデータベースに追加されます。php - スクリプトを追加できません

現時点では、私にはintergerに入ることができ、これらはデータベースに追加されていますが、テキストを追加しようとするとそうなりません。データベースのフィールドタイプは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) . "')"; 

事はあなたがエスケープされていないされた文字列と引用符。 Like 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

関連する問題