我有将信息写入数据库的脚本,但是如何让它打印变量" time"从数据库中更新相同的查询后,根据输入的电子邮件写入数据库?这适用于JSON。
<?php
if(!empty($_POST))
{
$dbhost = 'localhost';
$dbuser = 'casaange_testapp';
$dbpass = 'testapp1';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('casaange_volunteertest');
$email= $_POST['email'];
$time= $_POST['time'];
$sql = "UPDATE users SET time= '$time' WHERE email = '$email'";
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not update data: ' . mysql_error());
}
if($retval){
$response["success"] = 1;
$response["message"] = "Update successful!";
die(json_encode($response));
}
//echo '{"success":1, "message":"Time added!"}';
mysql_close($conn);
}
else
{
?>
<form method="post" action="timeinsert.php">
<table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="100">Email:</td>
<td><input name="email" type="text" id="email"></td>
</tr>
<tr>
<td width="100">Time:</td>
<td><input name="time" type="text" id="time"></td>
</tr>
<tr>
<td width="100"> </td>
<td> </td>
</tr>
<tr>
<td width="100"> </td>
<td>
<input name="update" type="submit" id="update" value="Update">
</td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>
答案 0 :(得分:0)
我想您想知道的是UPDATE查询是否实际更改了数据库中的值?
您可以使用mysql_affected_rows()
查看因查询而更改的行数 - 在您的情况下,它将为1或0。
如果您需要返回刚刚放入数据库的时间,可以通过选择退出并以电子邮件地址作为密钥来查询实际进入数据库的值。
关于您的代码的一些一般性观察,如果我可以:
您必须转义该POST数据,然后再将其放入SQL查询中 像那样。充其量它会成为bug的来源,最糟糕的是它 安全漏洞。
如果你正在编写新代码,就像你似乎在这里一样,你应该这样做 考虑使用较新的MySQLi或PDO_MySQL扩展而不是 旧的MySQL调用。
您可以使用json_encode
将关联的PHP数组转换为JSON
对象,而不是自己构建JSON字符串。