错误:将数据插入mySQL

时间:2015-02-16 07:14:31

标签: php mysql

我不知道我做错了什么,但它没有插入我希望它放入数据库的数据。没有代码错误给我,除了我创建mysql的那个,例如'错误插入'和类似的东西。我也做过很多关于登录来源的谷歌搜索,并尝试看看有什么不同但是没用。我找不到什么错!请帮忙。

<?php
include_once('connect.php')

$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];

if (isset($_POST['dalol'])){
    test();
}

function test(){
    $sql = "INSERT INTO members (username, email, password) VALUES ('".$GLOBALS['username']."','".$GLOBALS['email']."','".$GLOBALS['password']."')";
    if (mysql_query($sql)){
        echo '<p>Successfully Executed!</p>';
    } else {
        echo '<p>Failed!</p>';
    }
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>Insert Test</title>
</head>
<body>
    <form>
        Username: <input type="text" name="username"/><br>
        Email: <input type="email" name="email"/><br>
        Password: <input type="password" name="password"/><br>
        <input type='submit' name='dalol'/>
    </form>
</body>

3 个答案:

答案 0 :(得分:1)

您可以使用全局变量!

就是这样:

<?php
function test(){
global $username,$email,$password;
$sql = "INSERT INTO members (username, email, password) VALUES ('".$username."','".$email."','".$password."')";
    if (mysql_query($sql)){
        echo '<p>Successfully Executed!</p>';
    } else {
        echo '<p>Failed!</p>';
    }
} ?>

Prevent sql injection

 <?php
    $username = mysql_real_escape_string($_POST['username']);
    $email = mysql_real_escape_string($_POST['email']);
    $password = mysql_real_escape_string($_POST['password']);
     ?>

答案 1 :(得分:0)

由于所有变量都在同一页面上,因此您可以访问没有全局变量的变量:

使用此:

$sql = "INSERT INTO members (username, email, password) VALUES ('".$username."','".$email."','".$password."')";

你需要将表单标签中的方法设置为默认情况下它将是get type:

在表格标签中进行更改。

<form method="POST">

您需要将表单标签中的方法设为POST,因为如果您不提供方法,那么您将通过POST获取数据,那么它将被视为GET方法。

答案 2 :(得分:0)

由于变量的范围而发生这种情况。请尝试使用 -

test($username, $email, $password);

function test($uname, $email, $password) {
    $sql = "INSERT INTO members (username, email, password) VALUES ('".$uname."','".$email."','".password'."')";
    if (mysql_query($sql)){
        echo '<p>Successfully Executed!</p>';
    } else {
        echo '<p>Failed!</p>';
    }
}

使用mysqliPDO代替mysql