2016-10-29 16 views
0

これは私の頭を傷つけてしまいます。私は何かシンプルなものが欠けていると確信していますが、私の人生のために、私はそれを他のINSERTステートメントと比較するとき、私はそれをちょうどうまく書いています。開発者のネットワークタブをチェックするとパラメータが渡されますが、ヘッダに指定されたページには転送されず、フォームに記入すると情報が更新されません。ここでPostgreSQLのINSERT文がPDOのPHPで動作しない

は、私がモデルレイヤに書いた関数である。ここでは

function add_yarn($yarnbrand, $yarnamount, $yarnweight, $yarncolor) { 
global $db; 
$query = 'INSERT INTO yarn 
      (yarnbrand, yarnamount, yarnweight, yarncolor) 
      VALUES 
      (:yarnbrand, :yarnamount, :yarnweight, :yarncolor)'; 

$statement = $db->prepare($query); 
$statement->bindValue(':yarnbrand', $yarnbrand); 
$statement->bindValue(':yarnamount', $yarnamount); 
$statement->bindValue(':yarnweight', $yarnweight); 
$statement->bindValue(':yarncolor', $yarncolor); 
$statement->execute(); 
$statement->closeCursor(); 
} 

はindex.phpの中でその機能に関連付けられているアクションの中に制御層である:

case 'yarn_add' : 
    $yarnbrand = filter_input(INPUT_POST, 'yarnbrand'); 
    $yarnamount = filter_input(INPUT_POST, 'yarnamount', FILTER_VALIDATE_INT); 
    $yarnweight = filter_input(INPUT_POST, 'yarnweight'); 
    $yarncolor = filter_input(INPUT_POST, 'yarncolor'); 

    if ($yarnbrand == NULL || $yarnamount == NULL || 
      $yarnweight == NULL || $yarncolor == NULL) { 
     echo 'Empty or invalid data input.'; 
    } else { 
     add_yarn($yarnbrand, $yarnamount, $yarnweight, $yarncolor); 
     header('Location: index.php?action=view_yarn'); 
    } 
    break; 

、ここでは、追加のフォームレイヤー:

<?php include '../view/header.php'; ?> 

<main> 
<h1>Add Yarn</h1> 
    <form action="index.php" method="post" id="add_yarn_form"> 
     <input type="hidden" name="action" value="yarn_add"> 

     <label>Brand:</label> 
     <input type="text" name="yarnbrand"> <br> 

     <label>Weight:</label> 
     <input type="text" name="yarnweight"><br> 

     <label>Amount:</label> 
     <input type="text" name="yarnamount"><br> 

     <label>Color:</label> 
     <input type="text" name="yarncolor"><br> 

     <label>&nbsp;</label> 
     <input type="submit" value="Save Changes"><br> 
    </form> 
<div class="bottomtext"> 
    <a href="index.php?action=view_yarn">View Yarns</a> 
    <a href="index.php?action=list_supplies">View Supplies</a> 
</div> 

</main> 
<?php include '../view/footer.php'; ?> 

私は助けていただきありがとうございます!

+0

を開発者が与えられたときに有効な問題の説明ではありません「Xが動作していない」:)「動作しない」DEFINE ... – obe

+1

は、エラーチェックを追加してください。デバッガでコードをトレースして、行ごとに何が起こっているのかを調べてみてください。 – obe

+0

ありがとうございます。私はdatabase.phpファイルにエラーチェックを設定していますが、何も出ていません。私はNetbeansでデバッグしようとします。 –

答えて

0

おそらく、違法な病原体を持つ変数ですか? filter_inputには、整数変数に期待されるフィルタを使用しません。

manualに見てみましょう:

省略した場合、FILTER_DEFAULTはFILTER_UNSAFE_RAWに相当する、使用されます。これにより、デフォルトでフィルタリングが行われなくなります。

本当に安全ではありません:/

関連する問題