使用PHP/MySql脚本创建和更新用户表
我正在读一本关于PHP、MYSQL、JAVASCRIPT和JQUERY的书。阅读时,我会输入代码,看看它是如何工作的。我有以下脚本,我运行该脚本创建了一个名为“users”的表,然后用两个用户更新该表。当我在浏览器中运行该脚本时,它只创建了新表,但没有用新用户更新该表。我没有收到任何错误。下面是整个脚本使用PHP/MySql脚本创建和更新用户表,php,mysql,Php,Mysql,我正在读一本关于PHP、MYSQL、JAVASCRIPT和JQUERY的书。阅读时,我会输入代码,看看它是如何工作的。我有以下脚本,我运行该脚本创建了一个名为“users”的表,然后用两个用户更新该表。当我在浏览器中运行该脚本时,它只创建了新表,但没有用新用户更新该表。我没有收到任何错误。下面是整个脚本 <?php // setup_users.php require_once 'login.php'; $connection = new mysqli($hn, $un, $pw,
<?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);
}
?>
您的添加用户
函数的参数与您试图在查询本身中使用的参数不同
将查询更改为以下内容:
INSERT INTO users VALUES('$fn', '$sn', '$un', '$pw')
请注意,您应该改为使用,因为当前代码容易受到SQL注入攻击。如果您正在使用的书中不包含有关使用准备语句的信息,请废弃该书并找到一本包含这些信息的书。您刚刚错过了在add_user函数的插入查询中输入列名,您正在传递未定义的va流氓
你喜欢这样吗
$query = "INSERT INTO users(forename, surname, username, password)
VALUES('$fn', '$sn', '$un', '$pw')";
“哪里出错了?”——如果不启用正确的PHP错误报告,PHP会告诉您这些变量不存在于函数范围内——如果您允许的话。所以现在请您先去做这件事。我插入了相同的代码,但表仍然没有更新。我不断收到消息:“表‘用户’已经存在。”“每当我再次运行脚本时。表仍然是空的。我按照建议更改了它,但表仍然没有更新。@shallowGeek根据您对另一个答案的评论,请确保在运行脚本之前删除用户表again@shallowGeek没问题,如果答案有帮助,请考虑将它标记为“点击标记”:“@为什么你接受我的答案,然后把它改为另一个答案?”