HTML格式通过PHP提交给MySQL发送空白值

时间:2014-06-22 23:30:19

标签: php html mysql database forms

所以我的变量已经设定好了。

我的联系正常。

但我仍然收到发送给数据库的空白值。

$stmt = $connection->prepare('INSERT INTO EMAILS (email, first, last) VALUES (?,?,?)');
$stmt->bind_param('sss',$email, $first, $last);
$email = mysql_real_escape_string($from);
$first = mysql_real_escape_string($fname);
$last = mysql_real_escape_string($lname);
$stmt -> bind_result($result);
$stmt->execute();

我不准备陈述,所以完全有可能它完全错了,但如果有人能分享一些很棒的见解。

(编辑:变量表示值)

1 个答案:

答案 0 :(得分:1)

我不知道为什么在将它们绑定到查询后你会逃脱字符串。正如有人指出的那样,在使用准备好的陈述时你也不需要它们。

if(!$stmt = $connection->prepare("INSERT INTO EMAILS (email, first, last) VALUES (?,?,?)"))
{
    die($connection->error);
}
$stmt->bind_param('sss', $from, $fname, $lname);
$stmt->execute();
$stmt->close();

这应输入值或显示错误。为了进一步调试,您还可以回显$from, $fname, $lname变量,以确保它们符合您的想法。

修改

正如其他人指出的那样(但由于我没有注意到问题的标题,我错过了),我们假设$ from,$ fname和$ lname实际上是根本定义。如果通过表单提交,可以使用

进行定义
$from = $_POST["from"];
$fname = $_POST["fname"];
$lname = $_POST["lname"];

$_POST[" "]内的名称替换为您在HTML表单中为这些字段命名的内容。请记住,之前需要bind_param 注册之前