我正在读一本关于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);
}
?>
哪里出了问题?
答案 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')";