它是一个非常简单的脚本,或者至少它应该是。我有点不确定pHp,所以我不知道我哪里出错了。
此页面是从表单上的提交按钮调用的,它应该做的就是捕获名称,电子邮件地址和提交日期,并将其添加到我的数据库中。
我可以毫无问题地连接到数据库但无法添加到数据库。
出于某种原因,每次加载此页面时,我都会看到一个空白屏幕。 pHp / SQL似乎没有友好的错误报告。
以下是明显信息取出的代码。
<html>
<head>
</head>
<?php
$db_host = "localhost";
$db_username = "root";
$db_pass = "123";
$db_name = "emailtest";
$conn = @mysql_connect($db_host,$db_username,$db_pass,$db_name);
if ($conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
} else {
echo "Good connection ";
}
if(!empty($_REQUEST['name']))
{
$name = $_REQUEST['name'];
echo "hello, $name ";
if(!empty($_REQUEST['email']))
{
$email = $_REQUEST['email'];
}
else
{
$email = NULL;
}
if($email)
{
if ($conn->query($sql) === TRUE)
{
$dateTime = date("Y/m/d");
$sql = "INSERT INTO Newsletter_signup (name, email, sign_up_date) VALUES('$name','$email','$dateTime')";
echo "Record updated successfully <br/>";
echo "The email address, $email , has been added to the newsletter.";
} else {
echo "Error updating record: " . $conn->error;
}
$conn->close();
}
else
{
echo 'Please go back and insert an email address.';
}
?>
<body id="body">
// body style stuff
</body>
</html>
答案 0 :(得分:2)
因为您在$sql
和$conn->query($sql)
为空后定义$sql
。
答案 1 :(得分:1)
你正在混淆MySQL和MySQLi
mysqli_connect会返回mysqli
的实例。
您的脚本在尝试调用非对象上的方法时会抛出错误,因为mysql_connect会返回resource
。
您应首先启用错误报告(请参阅:this SO question + answer)
第二件事是@LTasty所说的:你使用$ sql,它没有在你想要执行查询时定义。
当你改变这些东西时,你应该看一下prepared statements,因为你的脚本容易受到SQL注入攻击。
答案 2 :(得分:0)
谢谢大家。我想说你们都赞同答案。
对于那些从我的错误中学习的人来说,这是现在可以运行的代码。
我只会提出php端代码。
<?php
$db_host = "localhost";
$db_username = "root";
$db_pass = "123";
$db_name = "emailtest";
$conn = new mysqli($db_host,$db_username,$db_pass,$db_name);
$dateTime = date("Y/m/d");
if ($conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
} else {
echo "Good connection ";
}
if(!empty($_REQUEST['name']))
{
$name = $_REQUEST['name'];
echo "hello, $name ";
}
if(!empty($_REQUEST['email']))
{
$email = $_REQUEST['email'];
}
else
{
$email = NULL;
}
if($email)
{
$sql = "INSERT INTO Newsletter_signup (name, email, sign_up_date) VALUES('$name','$email','$dateTime')";
if ($conn->query($sql) === TRUE)
{
echo "Record updated successfully <br/>";
echo "The email address, $email , has been added to the newsletter.";
} else {
echo "Error updating record: " . $conn->error;
}
$conn->close();
}
else
{
echo 'Please go back and insert an email address.';
}
?>
我还没有将可以通过pHp激活的错误报告包含到我的脚本中,但是感谢我现在将其包含在内的链接。