2014-03-29 374 views
0

我有腳本將寫入信息到數據庫,但我怎麼能讓它從數據庫打印變量「時間」後,它更新基於輸入的電子郵件寫入相同的查詢數據庫?這是用於JSON。讀取和寫入SQL數據庫

<?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

我想你想知道的是UPDATE查詢是否實際上改變了數據庫中的值?

您可以使用mysql_affected_rows()看到有多少行改變您的查詢的結果 - 在你的情況下,將1或0。

如果您需要返回您剛剛放入數據庫的時間,您可以通過選擇以電子郵件地址作爲關鍵字來查詢實際進入數據庫的值。

一些有關您的代碼一般觀察,如果可以的話:

  • 把它變成一個SQL查詢 像之前必須轉義POST數據。充其量,它將成爲錯誤的來源,最糟糕的是一個巨大的安全漏洞。

  • 如果您正在編寫新代碼,您應該考慮使用較新的MySQLi或PDO_MySQL擴展而不是舊的MySQL調用 。

  • 您可以使用json_encode將關聯的PHP數組轉換爲JSON 對象,而不是自己構建JSON字符串。

+0

你可以舉一個如何返回數據庫中剛剛更新的時間變量的例子嗎?我是PHP的新手,所以我還不知道所有這些命令。 –