2012-03-16 4 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

Смежные вопросы