发送到DB功能不执行

时间:2011-12-19 20:32:22

标签: php mysql

此函数从用户获取日期:

function getCCGraduationDate () {
        ?>
        <form method="post" action="processor.php">
        Graduation Date: <input type="text" name="CCgraduationdate"><br>
        <input type="submit">
        <?php
    }

此函数将值发送到DB,并在processor.php页面上调用:

function sendCCGraduationDate () {
    $con = mysql_connect("localhost","root","XXXXXX");
    if (!$con)
        {
    die('Could not connect: ' . mysql_error());
        }
        mysql_select_db("user", $con);
        $grad = mysql_real_escape_string($_POST['CCGraduationDate'], $con);
        $sql = "UPDATE profile SET CommunityCollegeGraduationDate='$grad' WHERE userid=$this->user_id";
        mysql_query( $sql , $con );

        mysql_close($con);

    }

由于某种原因,该值未在数据库中填充。我昨晚测试了类似的功能,他们工作,不知道我在这里缺少什么。

2 个答案:

答案 0 :(得分:1)

假设$this->user_id有一个实际值:

$sql = "UPDATE profile SET CommunityCollegeGraduationDate='$grad' WHERE userid=$this->user_id";

// Should be:

$sql = "UPDATE profile SET CommunityCollegeGraduationDate='$grad' WHERE userid={$this->user_id}";

// Or

$sql = "UPDATE profile SET CommunityCollegeGraduationDate='$grad' WHERE userid= " . $this->user_id;

- 编辑 -

$sql = "UPDATE profile SET CommunityCollegeGraduationDate='$grad' WHERE userid= " . $this->user_id;

if (!mysql_query( $sql , $con ))
    die(mysql_error()); 
}

- 编辑 -

// To avoid case and extra space issues, sanitize your var first
$grad = trim(strtolower($grad));

// You did well to escape
$grad = mysql_real_escape_string($grad, $con);

答案 1 :(得分:1)

请检查:

表格代码:

<input type="text" name="CCgraduationdate"><br>

PHP代码:

$grad = mysql_real_escape_string($_POST['CCGraduationDate'], $con);

您的表单中的CCgraduationdate在您的php代码中不等于CCGraduationDate

如果您没有收到如下错误:

Notice:  Undefined index: CCGraduationDate /* blah blah blah */

然后您可以尝试在PHP代码的顶部添加:

error_reporting(E_ALL);

然后看看是否出现错误。

当然,这是在将$sql变量的数据更改为:

之后
$sql = "UPDATE profile SET CommunityCollegeGraduationDate='$grad' WHERE userid=" . $this->user_id;