2012-03-13 88 views
1

我對PHP很陌生,需要幫助編寫我的網站的添加腳本。我編碼刪除和更新方面,他們正在完美工作。基本上,在我的網站的部分,你可以添加值到幾個文本框,我想要的是,當你點擊'添加'這將添加細節從文本框到數據庫。爲此,我使用PHP,Jquery和Ajax。PHP - 添加腳本

這是我對更新腳本代碼:

public function update($tableName,$fieldArray,$fieldValues,$rowId,$updateCondition) 
{ 
    // Get PDO handle 
    $PDO = new SQL(); 
    $dbh = $PDO->connect(Database::$serverIP, Database::$serverPort, Database::$dbName, Database::$user, Database::$pass); 

    // Build query 
    $this->sql = 'UPDATE '.$tableName.' SET '; 

    $fieldCount = count($fieldArray); 

    for ($i = 0; $i < $fieldCount; $i++){ 

     // If the index is at the last field... 
     $lastRow = $fieldCount - 1; 

     if ($i != $lastRow) { 

      // Add a comma 
      $this->sql .= $fieldArray[$i].'=:'.$fieldArray[$i].', '; 

     } else { 

      // Dont add a comma 
      $this->sql .= $fieldArray[$i].'=:'.$fieldArray[$i].' '; 

     } 

    } 

    // If row id is null (if we don't know the row id)... 
    if ($rowId == null || $rowId == "null") { 

     // Then use the update condition in it's place 
     $this->sql .= 'WHERE '.$updateCondition.' '; 

    } else { 

     // Use the ID 
     $this->sql .= 'WHERE Id = '.$rowId.' '; 

    } 



    try { 

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

     // Bind parameters 
     for ($i = 0; $i < $fieldCount; $i++){ 

      $stmt->bindParam(':'.$fieldArray[$i].'', $fieldValues[$i]); 

     } 

     $stmt->execute(); 

     $count = $stmt->rowCount(); 

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


     $stmt->closeCursor(); 

    } 

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

    // Close connection 
    $dbh = null; 
} 

這是我努力的代碼的一部分,如果你看一下代碼,我用我的更新腳本..我基本上需要類似於我的'添加'腳本的東西。

任何幫助將不勝感激!

+0

你會從看[視頻](http://www.youtube.com/watch?v=RlfLCWKxHJ0)受益..和其他人則來自「Clean Code Talks」系列。 – 2012-03-13 23:22:37

回答

1

歡迎使用PHP!這實在是一個奇妙的語言:)

試試這個:

<?php 

public function insert($tableName,$fieldArray,$fieldValues) 
{ 
    $sql = "INSERT INTO " . $tableName . " (".implode(',', $fieldArray).") VALUES (".implode(',', $fieldValues).")"; 

    // TODO: Execute $sql query 
} 
+0

我現在遇到的唯一問題是,當我將兩個整數值添加到數據庫時,它會將詳細信息添加到數據庫中,但是當我使用字符時,會出現以下錯誤消息: – nsilva 2012-03-15 16:24:06

+0

NetworkError:500 Internal Server Error。字段類型也設置爲varchar(20),所以我不能理解問題是什麼 – nsilva 2012-03-15 16:39:37

0

你應該基本寫出你的函數,然後打印出它所產生的結果SQL語句。一旦你能夠從這個級別看到他們,你可以在查詢瀏覽器中嘗試他們,看看你是否正確構建它們。