2016-05-08 10 views
-1

こんにちは、私は、ユーザーがこのフォームはMariaDBにクエリをexcuteことができませんでした

  <form id="myform"method="post"action="update.php"> 
     <table class="userinf"> 
      <tr> 
       <td><label class="labelii">PID</label></td> 
       <td><input id ="edtxt" class ="itxt"type="text" name="PID"required></td> 
       <td></td> 
      </tr> 
      <tr> 
       <td><label class="labelii">Name</label></td> 
       <td><input id ="iitxt1" class ="itxt"type="text" name="Name" r></td> 
       <td><button type="submit" class="Ebutton" onclick="submitform()">Update</button></td> 
      </tr> 
      <tr> 
       <td><label class="labelii">Picture</label></td> 
       <td><input id ="iitxt2" class ="itxt" type="text" name="Picture" ></td> 
       <td><button type="submit" class="Ebutton" onclick="submitform()">Update</button></td> 
      </tr> 
      <tr> 
       <td><label class="labelii">Price</label></td> 
       <td><input id ="iitxt3" class ="itxt" type = "text" name="Price" pattern="[-+]?([0-9]*\.[0-9]+|[0-9]+)"></td> 
       <td><button type="submit" class="Ebutton" onclick="submitform()">Update</button></td> 
      </tr> 
      <tr> 
       <td><label class="labelii">Type</label></td> 
       <td><input id ="iitxt4" class ="itxt" type="text" name="Type"></td> 
       <td><button type="submit" class="Ebutton" onclick="submitform()">Update</button></td> 
      </tr> 
      <tr> 
       <td><label class="labelii">Stock</label></td> 
       <td><input id ="iitxt5" class ="itxt"type="number" name="Stock"></td> 
       <td><button type="submit" class="Ebutton" onclick="submitform()">Update</button></td> 
      </tr> 
      <tr> 
       <td></td> 
       <td><button type="submit" class="Ebutton" onclick="submitform()">Update All</button></td> 
       <td></td> 
      </tr> 
     </table> 
    </form> 

これです更新 を作るために、製品のIDを入力する必要があり、私のデータベース に製品テーブルを更新しようとしている一人一人DB

から更新をするPHPコード、私はそれを土気クエリ
  <?php 
     if(isset($_POST['PID'])){ 
      $PID=$_POST['PID']; 
     } 
     if(isset($_POST["Name"]) && isset($_POST["Picture"]) && isset($_POST["Price"]) && isset($_POST["Type"]) && isset($_POST["Stock"])){ 
      $Name=$_POST['Name']; 
      $Picture=$_POST['Picture']; 
      $Price=floatval($_POST['Price']); 
      $Type=$_POST['Type']; 
      $Stock=intval($_POST['Stock']); 
      $query="UPDATE `product` SET `Name` = '$Name' , `Picture` = '$Picture', `Price` = '$Price' ,`Type` = '$Type' ,`Stock` = '$Stock' WHERE `product`.`PID` = '$PID'"; 
     } 
     if (isset($_POST['Name'])){ 
      $Name=$_POST['Name']; 
      $query="UPDATE `product` SET `Name` = '$Name' WHERE `product`.`PID` = '$PID'"; 
     } 
     else if(isset($_POST['Picture'])){ 
      $Picture=$_POST['Picture']; 
      $query="UPDATE `product` SET `Picture` = '$Picture' WHERE `product`.`PID` = '$PID'"; 
     } 
     else if(isset($_POST['Price'])){ 
      $Price=floatval($_POST['Price']); 
      $query="UPDATE `product` SET `Price` = '$Price' WHERE `product`.`PID` = '$PID'"; 
     } 
     else if(isset($_POST['Type'])){ 
      $Type=$_POST['Type']; 
      $query="UPDATE `product` SET `Type` = '$Type' WHERE `product`.`PID` = '$PID'"; 
     } 
     else if(isset($_POST['Stock'])){ 
      $Stock=intval($_POST['Stock']); 
      $query="UPDATE `product` SET `Stock` = '$Stock' WHERE `product`.`PID` = '$PID'"; 
     } 

これは私のコードの最後のバージョンである、それは名前だけに

を更新します
+0

また、データベース自体がそのエラーを返すので、 "行1"と言うと、あなたのコードに関することではなく、実行しようとしている文の1行目を指しています。 – patricksweeney

+0

どのように私はどのステートメントが実行されているかを知ることができるので、コードが実行されると、製品の名前が変更されるだけですidoなぜかわからない –

答えて

0

DBサーバーから返されたDB APIエラーです。コード言語とは関係ありません。これは、無効なSQL文を渡すことを示します。

最初の$クエリ代入文にWHERE文の前に余分な昏睡 "、"があります。

更新:ザイナブ、私はあなたの編集を参照して、今、元の問題は解決されていますか?

+0

私はデータベースからクエリを呼び出すので、PHPの変数で値を置き換えます –

0

$_POST["Name"]がたとえばO'Brianの場合、構文エラーが発生します。 <form>から来るものを脱出する。

+0

なぜエスケープ?どのようにそれを解決するには? –

関連する問題