2017-07-29 49 views
0

我编写了一个代码,可以防止sql注入,但现在甚至不会创建用户。下面是我的代码:Php不会在数据库中创建用户

<?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(); 
    } 
?> 

执行时,我没有得到任何错误,但它并没有创造我需要的用户。 对不起,这些代码可能不正确。我在这个新的。

+0

你传入URL的用户名和pasword?它也奇怪任何人都可以知道你的密码。 –

+0

你没有错误,因为你没有找到它。 – Saty

+0

如果你想在你的函数中使用$ conn,那么把它作为参数传入,如果你可以避免,尽量不要使用'global'。 –

回答

3

的真正原因是你是不是调用该函数

做这一点

<?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(); 


?> 
+1

“* ..没有调用函数*”是捕获。 –

+0

嗯,我不能相信我没有调用函数。必须如此盲目:D – deniz07

相关问题