2017-07-29 43 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

相關問題