我有一个类,用于使用PDO连接在表中插入"id",现在我必须将表单数据,即id存储在会话变量中。
<?php
session_start();
// this class is used to create connection with database
class Database
{
private $db_host = ‘localhost’;
private $db_user = ‘root’;
private $db_pass = ‘root’;
private $db_name = ‘test’;
public function connect() {
$db = new PDO('mysql:host=$db_host;dbname=$db_name;charset=utf8mb4', '$db_user', '$db_pass');
}
}
this class is used to insert the id in the table
class table1 extends Database
{
public function insert_info()
{
$sql = "insert into info(id) values ('?')";
$sql->bind_param("s", $id);
$sql->execute();
return true;
}
}
$_SESSION['campid']='camp1001';
$db = new table1(); // it is used to object of class table1.
$res=$db->insert_info();
?>
如何在表中存储会话变量将如何实现。
为什么不直接将$_SESSION['campid']
值传递给insert_info()
方法?
$_SESSION['campid']='camp1001';
$db = new table1(); // it is used to object of class table1.
$res=$db->insert_info($_SESSION['campid']);
以及功能
class table1 extends Database
{
public function insert_info($id) // <-- add function param
{
$sql = "insert into info(id) values ('?')";
$sql->bind_param("s", $id);
$sql->execute();
return true;
}
}
将会话传递给方法。就像将变量传递给函数一样。
$_SESSION['campid']='camp1001';
$db = new table1(); // it is used to object of class table1.
$res=$db->insert_info($_SESSION['campid']);
class table1 extends Database
{
public function insert_info($id)
{
$sql = "insert into info(id) values ('?')";
$sql->bind_param("s", $id);
$sql->execute();
return true;
}
}
或者将会话值传递给构造函数。这会使时间更长,但在某些情况下会用到。
$db = new table1($_SESSION['campid']);
$res=$db->insert_info();
class table1 extends Database
{
public $id;
__construct($id){
$this->id = $id;
}
public function insert_info()
{
$sql = "insert into info(id) values ('?')";
$sql->bind_param("s", $this->id);
$sql->execute();
return true;
}
}