所以我的变量已经设定好了。
我的联系正常。
但我仍然收到发送给数据库的空白值。
$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();
我不准备陈述,所以完全有可能它完全错了,但如果有人能分享一些很棒的见解。
(编辑:变量表示值)
答案 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
注册之前