使用会话和带有PDO的表单向mySQL添加一行


Adding a row to mySQL using a session and a form with PDO

我试图在我的数据库中添加一个新行表,表中只有两列,我正在使用表单来获取其中一个字段。这是我使用的表单

<form action="add_list.php" method="post">
Name: <input type="text" name="listname">
<input type="submit" value="Add List">
</form>

这里是add_list。php

<?php
/* Execute a prepared statement by binding PHP variables */
$username = "mydb";
$password = "mydb"; 
$member = $_SESSION['SESS_MEMBER_ID'];
$listname = $_POST["listname"];
try {
    $dbh = new PDO('mysql:;dbname=mydb', $username, $password);
    $sth = $dbh->prepare('INSERT INTO lists VALUES (:member_id, :listname)');
    $sth->execute(array(':member_id' => $member, ':listname' => $listname));
    } catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();}
?>

目前在第5行出现错误

Undefined variable: _SESSION in /home/danu2_cj3/public_html/add_list.php on line 5

我如何识别会话变量?

下面是我在

中设置会话的部分登录代码
if($result) {
        if(mysql_num_rows($result) == 1) {
            //Login Successful
            session_regenerate_id();
            $member = mysql_fetch_assoc($result);
            $_SESSION['SESS_MEMBER_ID'] = $member['member_id'];
            $_SESSION['SESS_FIRST_NAME'] = $member['firstname'];
            $_SESSION['SESS_LAST_NAME'] = $member['lastname'];
            session_write_close();
            header("location: lists.php");
            exit();
        }else {
            //Login failed
            header("location: login-failed.php");
            exit();
        }

消息格式为:

Undefined variable: _SESSION ...

通常是由于在脚本开始时(在发送报头之前和在任何访问$_SESSION键的尝试完成之前)缺少session_start调用引起的。


我试过了,但它只是给我一个空白页,不把它添加到表。

好吧,那意味着你至少已经解决了上面的问题。对于空白页,您应该搜索白屏死机,这是PHP环境中最常见的问题之一。