php到MySQL不工作,不知道为什么

时间:2014-11-12 15:26:46

标签: php mysql

它是一个非常简单的脚本,或者至少它应该是。我有点不确定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>

3 个答案:

答案 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激活的错误报告包含到我的脚本中,但是感谢我现在将其包含在内的链接。