我试图通过文本字段从HTML5页面上的用户获得一封电子邮件,并通过POST将其传递到processing页面,然后该页面用电子邮件更新MySQL表。
在HTML5页面上输入电子邮件的行:
<input id="emailBox" size="30" type="email" placeholder="Email address" style="display: none" />相关的PHP代码:
<?php
$mysql = new mysqli("localhost","USERNAME","PASSWORD", "DATABASE_NAME");
if ($mysql->connect_error) {
die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
}
$email = $mysql -> real_escape_string($_POST[2]);
if($email != "null"){ //the HTML5 page passes NULL as String "null"
echo "<h3>" . $email . " will receive an email notification in " . ($duration-5) . " minutes.</h3>";
}
echo "<br>This page will redirect in 5 seconds.";
try{
$mysql->query("START TRANSACTION");
$query = "UPDATE TABLE_NAME SET email='" . $email . "' WHERE id=" . $A_VARIABLE;
if(mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$mysql->commit();
}catch(Exception $e){
echo "An error occured.";
$mysql->rollback();
}
$mysql->close();
?>一位朋友告诉我,有一种特殊的方法可以转义字符串变量,但我还没有找到如何转义的方法。我也尝试过没有围绕$email的"",但没有任何区别。没有崩溃,数据库中的值从NULL变为“”,但是空字符串对于发送电子邮件和NULL一样没用。如果有人能给出一个正确语法的例子,那就太棒了。谢谢!
发布于 2014-02-10 00:07:52
我一定是漏掉了什么。这是怎么回事..。
$query = "
UPDATE TABLE_NAME
SET email = '$email'
WHERE id = $A_VARIABLE;https://stackoverflow.com/questions/21666612
复制相似问题