我不知道我做错了什么,但它没有插入我希望它放入数据库的数据。没有代码错误给我,除了我创建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>
答案 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>';
}
} ?>
<?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>';
}
}
使用mysqli
或PDO
代替mysql
。