我写了一个代码来保护我免受 sql 注入(inject),但现在它甚至不创建用户。这是我的代码:
<?php
$user = $_GET['username'];
$pass = $_GET['password'];
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test123";
$conn = new mysqli($servername, $username, $password, $dbname);
function selectInfo($user, $pass){
global $conn;
$stmt = $conn->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
$stmt->bind_param("ss", $user, $pass);
$stmt->execute();
$stmt->close();
}
?>
我在执行时没有遇到错误,但它没有创建我需要的用户。 对不起代码不好。我是新手。
最佳答案
真正的原因是你没有调用函数
要么这样做
<?php
$user = $_GET['username'];
$pass = $_GET['password'];
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test123";
$conn = new mysqli($servername, $username, $password, $dbname);
function selectInfo($user, $pass){
global $conn;
$stmt = $conn->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
$stmt->bind_param("ss", $user, $pass);
$stmt->execute();
$stmt->close();
}
selectInfo($user, $pass);
?>
或
<?php
$user = $_GET['username'];
$pass = $_GET['password'];
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test123";
$conn = new mysqli($servername, $username, $password, $dbname);
$stmt = $conn->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
$stmt->bind_param("ss", $user, $pass);
$stmt->execute();
$stmt->close();
?>
关于Php 不在数据库中创建用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45386601/