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