使用PHP / MySql脚本创建和更新用户表

时间:2017-07-05 13:45:23

标签: php mysql

我正在读一本关于PHP,MYSQL,JAVASCRIPT和JQUERY的书。在阅读时,我会输入代码并查看其工作原理。我有以下脚本,我跑来创建一个名为“users”的表,然后用两个用户更新表。当我在浏览器中运行脚本时,它只创建了新表,但未能用新表更新它用户。我没有收到任何错误。下面是整个脚本。

<?php // setup_users.php 

require_once 'login.php';

$connection = new mysqli($hn, $un, $pw, $db);
if ($connection->connect_error) die($connection->connect_error);

$query = "CREATE TABLE users (

    forename VARCHAR(32) NOT NULL,
    surname  VARCHAR(32) NOT NULL,
    username VARCHAR(32) NOT NULL UNIQUE,
    password VARCHAR(32) NOT NULL
    )";

$result = $connection->query($query);

if (!$result) die($connection->error);

$salt1 = "qm&g";
$salt2 = "ph!@";

$forename = 'Baban';
$surname = 'Sadik';
$username = 'bsadik';
$password = 'babansadik1';
$token = hash('ripemd128', "$salt1$password$salt2");

add_user($connection, $forename, $surname, $username, $token);

$forename = 'Abdullah';
$surname = 'Abubakar';
$username = 'aabubakar';
$password = 'abakar1';
$token = hash('ripemd128', "$salt1$password$salt2");

add_user($connection, $forename, $surname, $username, $token);

function add_user($connection, $fn, $sn, $un, $pw) {

    $query = "INSERT INTO users VALUES('$forename', '$surname', '$username', '$token')";
    $result = $connection->query($query);
    if (!$result) die($connection->error);

}

?>

哪里出了问题?

2 个答案:

答案 0 :(得分:1)

您的add_user函数的参数与您尝试在查询中使用的参数不同。

将查询更改为以下内容:

INSERT INTO users VALUES('$fn', '$sn', '$un', '$pw')

请注意,您应该使用prepared statements,因为目前代码容易受到SQL注入攻击。如果您使用的图书中没有包含使用预准备语句的信息,请删除该图书并找到相应的图书。

答案 1 :(得分:1)

您只是错过了在add_user函数中的插入查询中添加列名,并且您传递的是未定义的变量 这样做

$query = "INSERT INTO users(forename, surname, username, password)
        VALUES('$fn', '$sn', '$un', '$pw')";