Php 不在数据库中创建用户

标签 php mysql

我写了一个代码来保护我免受 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/

相关文章:

php - 无法在mysql php中打印字段的值

php - 来自 mysql 的 JsTree ul li

php - 如果我已经有 IDE、Web 主机和 FTP 客户端,是否需要安装 PHP、MySQL 和 XAMP 之类的东西?

php - 如何摆脱页脚下方的这个额外部分 - Bootstrap

php - Windows bash NGINX 未完成成功的 PHP-FPM 操作

mysql - postgresql 中的 "Subquery must return only one column"错误

mysql - 带有预先加载和 lockForUpdate 的查询是否也会锁定预先加载的行?

mysql - sql min 函数和其他列

php - 是否可以插入一行,但前提是值尚不存在?

javascript - 创建一行代码和一个脚本来从另一个站点(例如 Twitter、分析等)回调表中的数据库信息