2011-12-05 5 views
0

に更新されません、テキスト入力から受け取っ:入力は、これは私のデータを更新しない理由を私は理解することはできませんmysqlのテーブル

include "config.php" 
printf ("Update PriceList\n"); 
printf ("<form method=\"post\" action=\"price_red.php\">"); 
printf ("Select PhoneID: <input type = \"Text\" name = \"PhonID\"><br>"); 
printf ("PhoneName:<input type = \"Text\" name = \"PhoneName\"><br>"); 
printf ("PhoneType:<input type = \"Text\" name = \"PhoneType\"><br>"); 
printf ("ScreenType:<input type = \"Text\" name = \"ScreenType\"><br>"); 
printf ("Camera: <input type = \"Text\" name = \"Camera\"><br>"); 
printf ("Quantity: <input type = \"Text\" name = \"Quantity\"><br>"); 
printf ("Price:<input type = \"Text\" name = \"Price\"><br>"); 
printf ("Out of stock:<input type = \"Text\" name = \"outofstock\"><br>"); 
printf ("<input type=\"Submit\" name=\"submit\" value=\"Update\">"); 
printf ("</form>"); 

$sql = mysql_query("UPDATE PhonesPriceList SET PhoneName = '$PhoneName', Price = '$Price',  Quantity = '$Quantity', Outofstock = '$outofstock' WHERE PhoneID = '$PhonID';"); 
$sql1 = mysql_query("UPDATE PhonesDetails SET PhoneType = '$PhoneType', ScreenType = '$ScreenType', Camera ='$Camera' WHERE PhoneID = '$PhonID';");  
+1

ようこそ!あなたは、あなたの質問でエラーチェックをしていません。あなたは 'mysql_query()'呼び出しの後にそれを行う必要があります。そうしないと、クエリが失敗した場合にスクリプトが中断されます。どのようにするかは、[mysql_query() '](http://php.net/mysql_query)またはこの[参照質問](http://stackoverflow.com/questions/6198104/reference)に記載されています。 -what-is-a-perfect-code-sample-using-mysql-extension) –

+0

あなたが表示するコードは、[SQLインジェクション](http://php.net/manual/en/security.database)にも脆弱です。 .sql-injection.php)。ライブラリ(mysql_real_escape_string()のような古典的なmysqlライブラリのような)の適切な衛生メソッドを使用するか、PDOとプリペアドステートメントに切り替えます。 –

+0

変数$ PhoneName arntが定義されています – craig1231

答えて

0

このようなものを試してください。注射を防ぐために適切な衛生設備を追加してください。

include "config.php" 

    if(isset('submit'){ 
$Phoneid= $_POST['PhoneID']; 
    $Phone_name= $_POST['PhoneName']; 
    $Phone_type = $_POST['PhoneType']; 
    $screen_type= $_POST['ScreenType']; 
    $camera = $_POST['Camera']; 
    $Quantity = $_POST['Quantity']; 
    $price = $_POST['Price']; 
$outofstock = $_POST['outofstock']; 

$dbc = mysqli_connect(data info) 
or die ('Error connecting'); 
    $query = "UPDATE PhonesPriceList SET PhoneName = '$PhoneName', Price = '$price',  
     Quantity =  '$Quantity', Outofstock = '$outofstock' WHERE PhoneID = '$PhonID' "; 

    msqli_query($dbc, $query) or die (' failed to query'); 

    echo ' Update successful'; 

    mysqli_close($dbc); 
    } 
+0

ありがとう! – soryan

1

フォームのデータが自動的に変換されません。変数。データは$_POST[ 'name' ]である必要があります。ここで、「名前」は入力フィールドの名前属性です。

受信したデータは、そのデータベース操作を行う前に必ずサニタイズしてください(参照番号mysql_real_escape_string())。

小さなヒント:printf()を使用して大きなテキストブロックを出力する代わりに、純粋なHTMLに戻すことができます。コードはもっときれいに見えます。

include "config.php" 
// go back to pure HTML 
?> 
Update PriceList 
<form method="post" action="price_red.php"> 
... 
<?php // back to PHP 
+0

ありがとう、私はそれを試してみます – soryan

関連する問題