0
他の更新機能はうまくいっていますが、データを更新しようとしましたが、現在の支払い率は0になっています。唯一の支払率は、以下の0DECIMAL入力(php、mysql)で入力を更新
になって、これは私の更新SQL文です
<div class="form-group">
<label class="control-label col-sm-4" >Payment Rate:</label>
<div class="col-sm-4">
<input type="decimal" class="form-control" name="payment" value="<?php echo "RM"; ?> <?php if(isset($row['payment_puspakom'])){ echo $row['payment_puspakom']; } ?>" required placeholder="Enter Payment Rate (RM)">
</div>
</div>
小数入力用のHTMLです。
if(isset($_POST['submit'])){
$id = mysqli_real_escape_string($link, $_POST["puspaid"]);
$vehicle = mysqli_real_escape_string($link,$_POST["vehicle"]);
$date = date("Y-m-d",strtotime($_POST["date"]));
$specification = mysqli_real_escape_string($link,$_POST["specification"]);
$stats = mysqli_real_escape_string($link,$_POST["stats"]);
$next = date("Y-m-d",strtotime($_POST["next"]));
$payment = mysqli_real_escape_string($link,$_POST["payment"]);
$status = mysqli_real_escape_string($link,$_POST["status"]);
$update = mysqli_real_escape_string($link,$_SESSION["idinfostaf"]);
$updpuspa="UPDATE puspakom SET id_fkVehicle='$vehicle', id_fkPuspakomStatus='$stats', date_puspakom='$date', specification='$specification', payment_puspakom='$payment', dateNext_puspakom='$next', status_puspakom='$status', updateby_puspakom='$update' WHERE id_puspakom=".$id;
$respuspa=mysqli_query($link,$updpuspa);
if($respuspa){
$success = "Record Updated Successfully";
}
else{
$error = "Error Updating Record. Try Again...".mysqli_error($link);
}
}
私は間違いを見つけたようです。
準備文を使用してください。 – Enstage
は覚えていますか? – yuki
[Little Bobby](http://bobby-tables.com/)によると、[あなたのスクリプトはSQLインジェクション攻撃の危険にさらされている](http://stackoverflow.com/questions/60174/how-can-i-prevent- sql-injection-in-php)を使用します。 [MySQLi](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)の[prepared statements](http://en.wikipedia.org/wiki/Prepared_statement)について学んでください。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません。 – junkfoodjunkie