2012-03-16 3 views
1

내 업데이트 스크립트에 문제가 있습니다. 기본적으로 텍스트 상자에 값을 입력하고 '추가'를 클릭하면이 값이 데이터베이스에 추가됩니다.php - 스크립트 추가 작동하지 않음

현재 내가 intergers에 들어가는 것을 허용하고 있으며, 이것들은 데이터베이스에 추가되고 있지만 텍스트를 추가하려고하면 그렇지 않습니다. 데이터베이스 필드 유형이 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

관련 문제