2012-03-13 12 views
1

私はPHPでとても新しく、私のWebサイトのスクリプトを記述するのに役立つ必要があります。私は削除と更新側をコーディングしており、彼らは完全に動作しています。基本的には、私のウェブサイトのいくつかの部分で、いくつかのテキストボックスに値を追加することができます。私が望むのは、「追加」をクリックすると、テキストボックスの詳細がデータベースに追加されます。これを行うには、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; 
} 

これは私がコードに苦労しています一部である、あなたは私が私の更新スクリプトを使用したコードを見れば..私は基本的に必要私の 'add'スクリプトに似たものです。

ご協力いただければ幸いです!

+0

と:それはこれを試してみてください

:)本当に素晴らしい言語です実際には "Clean Code Talks"シリーズの他の人たちです。 –

答えて

1

ようこそ! ..あなたは、[この動画](http://www.youtube.com/watch?v=RlfLCWKxHJ0を)見ての恩恵を受けるだろう

<?php 

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

    // TODO: Execute $sql query 
} 
+0

私が今抱えている唯一の問題は、2つの整数値があるときにデータベースに詳細を追加することですが、文字を使用すると次のエラーメッセージが表示されます。 – nsilva

+0

NetworkError:500 Internal Server Error。フィールドの型もvarchar(20)に設定されているので、問題の内容を理解することはできません – nsilva

0

基本的に関数を書き出し、最後に作成した結果のSQL文を出力する必要があります。そのレベルからそれらを見ることができたら、クエリブラウザでそれらを試して、それらを正しく構築しているかどうかを確認できます。

関連する問題