php - 无法通过 PHP 将数据插入 MySQL 数据库

标签 php mysql database

我正在设置一个仪表板,出于安全目的,需要用户能够查看其 session 历史记录。所以我决定创建一个数据库并使用 PHP 将 session_id()CURRENT_TIMESTAMP 和一些其他变量插入表中,但由于某种原因 PHP 和/或 MySQL 是无法将值插入数据库。我能够从同一数据库读取和显示数据,但无法INSERTUPDATE 数据。

我正在使用的服务器正在运行 Apache 2、PHP 7 和 MySQL 5。我过去曾尝试过插入和更新数据(以及在其他服务器上),但我总是遇到这个问题。

$badge_number = $_SESSION['badge_number'];

$session_id = session_id();

$link = mysqli_connect('localhost', 'username', '*********', 'database');

   if (mysqli_connect_error()) {
        die("Cannot connect to database");
    }

    $query = "INSERT INTO `session_log` (`id`, `badge_number`, `session_id`, `session_start`, `session_end`, `session_length`) VALUES (NULL, $badge_number, $session_id, CURRENT_TIMESTAMP, NULL, 'regular')";

    $result = mysqli_query($link, $query);

    if (!$result) {
        die('Error code:' . mysqli_error());
    } else {
        header("Location: /overview?message=%3Cp%3E%3Cstrong%3ESuccess%21%3C/strong%3EYou%20have%20successfully%20logged%20in%20and%20inserted%20a%20new%20row%20in%20the%20session%20log%21%3C/p%3E&messagecolor=green&messageid=3942791098282");
    }

我希望每次用户登录时都会在数据库中看到一个新行,但我不断收到此错误消息错误代码:,它没有告诉我任何信息。

最佳答案

session ID 是一个字符串,因此您需要在 VALUES 一侧的 SQL 中将 $session_id 添加单引号,如下所示:

$badge_number = $_SESSION['badge_number'];

$session_id = session_id();

$link = mysqli_connect('localhost', 'username', '*********', 'database');

if (mysqli_connect_error()) {
    die("Cannot connect to database");
}

$query = "INSERT INTO `session_log` (`id`, `badge_number`, `session_id`, `session_start`, `session_end`, `session_length`) VALUES (NULL, $badge_number, '$session_id', CURRENT_TIMESTAMP, NULL, 'regular')";
//added single quotes around '$session_id' above on the VALUES side. 

$result = mysqli_query($link, $query);

if (!$result) {
    die('Error code:' . mysqli_error());
} else {
    header("Location: /overview?message=%3Cp%3E%3Cstrong%3ESuccess%21%3C/strong%3EYou%20have%20successfully%20logged%20in%20and%20inserted%20a%20new%20row%20in%20the%20session%20log%21%3C/p%3E&messagecolor=green&messageid=3942791098282");
}

关于php - 无法通过 PHP 将数据插入 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54241994/

相关文章:

php - 访问绑定(bind)队列之前发送的交换消息

mysql - 有没有办法将 mySQL 数据库实际保存到 Github?

database - 网站开始抛出错误 : System resource exceeded.( Access 数据库)

java - 如何阻止 Gradle 复制构建文件夹中的资源

php - 如何使用 jquery 从 php 变量显示 "content"? (它向我展示了 "name"本身,而不是其中的内容)

PHP从用户那里获取数据并搜索到多个列

php - 字符串组合匹配

php - 为什么这个 SQL 不正确(MySQL)?

php - 无法使用php连接到远程数据库

database - Codeigniter PDO 集成