数据库功能异常发生

时间:2014-08-09 01:45:58

标签: php mysql

我写了一个简单的函数来将一些表单值发送到数据库并继续得到我似乎无法解决的语法错误。我已经尝试了19种不同的代码变体,但仍然会出现同样的错误。

<?php

    function sendData () {
    $con = mysql_connect("XXXXXXXXX","XXXXXXXXX","XXXXXXXXX");
    if (!$con)
        {
    die('Could not connect: ' . mysql_error());
        }
        mysql_select_db("user", $con);
        $name = mysql_real_escape_string($_POST['name'], $con);
        $age = mysql_real_escape_string($_POST['age'], $con);
        $phone = mysql_real_escape_string($_POST['phone'], $con);
        $email = mysql_real_escape_string($_POST['email'], $con);
        $revenue = mysql_real_escape_string($_POST['revenue'], $con);
        $expenses = mysql_real_escape_string($_POST['expenses'], $con);
        $marketing = mysql_real_escape_string($_POST['marketing'], $con);
        $advertising = mysql_real_escape_string($_POST['advertising'], $con);
        $sql = "INSERT into users (name, age, phone, email, revenue, expenses, marketing, advertising) VALUES ('$name', '$age', '$phone', '$email', '$revenue', '$expenses', '$marketing', '$advertising');
        mysql_query( $sql , $con );
        mysql_close($con);
        }


    sendData();
?>

1 个答案:

答案 0 :(得分:2)

您当前的问题是您在字符串末尾缺少双引号:

    $sql = "INSERT into users(name, age, phone, email, revenue, expenses, marketing, advertising)
        VALUES ('$name', '$age', '$phone', '$email', '$revenue',
                '$expenses', '$marketing', '$advertising')";
----------------------------------------------------------^
    mysql_query( $sql , $con );
    mysql_close($con);

更严重的问题是您正在使用“mysql_”函数并将参数值直接放入查询中。您应该使用“mysqli_”或PDO并使用参数化查询。现在是学习的时候了。