ОШИБКА: Вставка данных в mySQL

Я не знаю, что я делаю неправильно, но не вставляю данные, которые я хочу, чтобы они помещали в базу данных. Мне не передается ошибка кода, кроме той, которую я создал mysql, такой как "Вставка ошибок" и тому подобное. Я также сделал много поисков в Google о источниках входа в систему и попытался понять, в чем разница, но это бесполезно. Я не могу найти, что случилось! Пожалуйста помоги.

<!--?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!'; } else { echo '<p>Failed!</p>'; }
}
?> <title>Insert Test</title> <form> Username: Email: Password: </form>
3 ответа

Вы можете использовать глобальные переменные!

это путь:

<!--?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!'; } else { echo '<p>Failed!</p>'; }
} ?>

Предотвращение инъекции sql

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


Поскольку все переменные находятся на одной странице, поэтому вы можете получить доступ к переменным без глобальной переменной:

Использовать это:

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

И вам нужно указать метод в теге формы, поскольку по умолчанию он будет получать тип:

внести изменения в тег формы.

<form method="POST"> <p> Вы должны дать метод в теге формы как POST, потому что вы получаете данные POST, если вы не дадите метод, тогда он будет рассматривать его как метод GET.</p> </form>


Это происходит из-за объема переменных. Попробуйте -

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.

licensed under cc by-sa 3.0 with attribution.