插入数据库dinamic值

时间:2015-12-29 18:06:19

标签: php mysql insert

我有:

<form action='http://www.myadress.com/insert_wallet.php' method='post'>
    <iframe name='hidden-form' src='...' class='hf'></iframe>
 <input type='checkbox' name='pago' value='pago'> <br> </div><div class='tb1_small sc '>
  <input type='checkbox' name='recibo' value='recibo_entregue' > <br></div><div class='tb3_md sc '>
  <input type="hidden" name="id_p" readonly value=" <?php  echo "$events[0]";?> "> 
  <input type='Submit' value='Salvar'>
</form> 

和我的insert_wallet.php:

// Get values from form
$pago=mysql_real_escape_string($_POST["pago"]);
$recibo=mysql_real_escape_string($_POST["recibo"]);
$id_p=mysql_real_escape_string($_POST["id_p"]);

// Insert data into mysql

$sql=" UPDATE bruno_wallet SET pago=$pago, recibo=$recibo where id=$id_p " ;
$result=mysql_query($sql);

这有什么不对吗?不知怎的,它不起作用...我想用行标识$id_p更新行pago e recibo的值。

1 个答案:

答案 0 :(得分:1)

请检查此行代码

 <input type="hidden" id="id_p" name='id_p'readonly value=" <?php  echo "$events[0]";?> "> 

您确定传递的是id_p的正确值吗?您回显双引号“”

包围的值

不喜欢这个

<?php  echo "$events[0]";?>

试试这个

<?php  echo $events[0]; ?>

再次,你在哪里得到等于你正在回应的变量$ events [0]的值。

可替换地。

还要确保首先将表单作为文本输入,以确保在再次隐藏之前可以看到回显的值

 <input type="text" id="id_p" name='id_p'readonly value=" <?php  echo $events[0]; ?> "> 

或者您可以直接从表单输入传递id_p值,看看它是否通过post更新数据库。实施例

 <input type="text" id="id_p" name='id_p'readonly value="1234"> 

其中1234对应于被回显的id_p的值

最后,如果您回显的此值不是数字或整数,则可能容易受到XSS攻击。使用htmlspecialchars()htmlentities()函数可以规避此攻击。记住,Mysql_Connect从Gaint Sign Warning开始被删除。您最好开始使用PDO或Mysqli

最终,您的sql更新状态应该类似于

$sql=" UPDATE bruno_wallet SET pago='$pago', recibo='$recibo' where id='$id_p'" ;

如果这样可以解决您的问题,请将其标记为正确答案