Php Can';t使用类方法在循环中插入数据
我正在尝试将变量Php Can';t使用类方法在循环中插入数据,php,class,oop,mysqli,Php,Class,Oop,Mysqli,我正在尝试将变量$check\u for_e2值插入数据库。但是for循环只插入一次。为什么?请帮帮我 我想在每行的members表中插入变量数据。但是当我运行这段代码时,它只插入了第一个名为admin的用户名。 其他用户名Sweet,kakuly不插入数据库 require_once 'core/init.php'; $db = DB::getInstance(); if(isset($_POST["create_group"])) { $g_name = $_POST['create_g
$check\u for_e2
值插入数据库。但是for循环只插入一次。为什么?请帮帮我
我想在每行的members表中插入变量数据。但是当我运行这段代码时,它只插入了第一个名为admin的用户名。
其他用户名Sweet,kakuly
不插入数据库
require_once 'core/init.php';
$db = DB::getInstance();
if(isset($_POST["create_group"])) {
$g_name = $_POST['create_group']; // $g_name = 'Simple Name';
$check_for_e = $_COOKIE["CreateGroup"]; // check_for_e = 'admin,Sweet,kakuly'
$check_for_e2 = explode(',',$check_for_e);
$arrlength = count($check_for_e2);
//print_r($check_for_e2); //Array ( [0] => admin [1] => Sweet [2] => kakuly )
// GROUP ENTRY
$g_mgs = 'grp_'.time(); //GROUP IDENTY NUMBER
$db->query("INSERT INTO all_group (`g_id`, `name`, `description`, `privacy`) VALUES (?,?,?,?)",array($g_mgs,$g_name,'member','Public'));
// ASSING GROUP MEMBERS
for($x = 0; $x < $arrlength; $x++) {
echo $grp_mem = $check_for_e2[$x]; echo '<br>';
$db->insert('members', array('g_id' => $g_mgs, 'usermane' => $grp_mem, 'access' => 'member'));
}
// ASSING ME AS A GROUP ADMIN
$db->insert('members', array('g_id' => $g_mgs, 'usermane' => $username, 'access' => 'admin'));
// CREATE GROUP MESSAGES TABLE
$db->query("CREATE TABLE `ekooycf_groups`.`$g_mgs` ( `username` VARCHAR(50) NOT NULL , `message` TEXT NOT NULL , `time` VARCHAR(50) NOT NULL ) ENGINE = InnoDB CHARSET=utf8mb4 COLLATE utf8mb4_bin;");
echo $db->error();
}
require_once'core/init.php';
$db=db::getInstance();
如果(isset($\u POST[“创建组”])){
$g_name=$_POST['create_group'];//$g_name='Simple name';
$check_for_e=$_COOKIE[“CreateGroup”];//check_for_e='admin,Sweet,kakuly'
$check_for_e2=爆炸(',',$check_for_e);
$arrlength=计数($check\u for\u e2);
//print_r($check_for_e2);//数组([0]=>admin[1]=>Sweet[2]=>kakuly)
//组条目
$g_mgs='grp_'.time();//组标识号
$db->query(“插入到所有组(`g_id`、`name`、`description`、`privacy`)值(?、、?、?)”),数组($g_mgs、$g_name、'member'、'Public');
//协助小组成员
对于($x=0;$x<$arrlength;$x++){
echo$grp_mem=$check_for_e2[$x];echo'
';
$db->insert('members',array('g_id'=>$g_mgs,'usermane'=>$grp_mem,'access'=>'member');
}
//任命我为团队管理员
$db->insert('members',array('g_id'=>$g_mgs,'usermane'=>$username,'access'=>'admin');
//创建组消息表
$db->query(“创建表`ekooycf_groups`.`g_mgs`(`username`VARCHAR(50)不为空,`message`TEXT不为空,`time`VARCHAR(50)不为空)ENGINE=InnoDB CHARSET=utf8mb4 COLLATE utf8mb4_bin;”);
echo$db->error();
}
DB类是
class DB {
private static $_instance = null;
private $_pdo,
$_query,
$_error = false,
$_results,
$_count = 0;
private function __construct() {
try {
$this->_pdo = new PDO('mysql:host='.Config::get('mysql/host').';dbname='.Config::get('mysql/db'), Config::get('mysql/username'), Config::get('mysql/password'));
// echo "connected";
} catch(PDOException $e) {
die($e->getMessage());
}
}
public static function getInstance() {
if(!isset(self::$_instance)) {
self::$_instance = new DB();
}
return self::$_instance;
}
public function query($sql, $params = array()) {
$this->_error = false;
if($this->_query = $this->_pdo->prepare($sql)) {
//$this->_pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// echo " Success";
// echo "<br>".$sql."<br>";
// print_r($params);
$x = 1;
if(count($params)) {
foreach($params as $param) {
// echo $param;
$this->_query->bindValue($x, $param);
$x++;
// echo $x."<br>";
}
}
if($this->_query->execute()) {
// echo "Success";
$this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ);
$this->_count = $this->_query->rowCount();
} else {
$this->_error = true;
}
}
return $this;
}
public function insert($table, $fields = array()) {
if(count($fields)) {
$keys = array_keys($fields);
$values = null;
$x = 1;
foreach ($fields as $field) {
$values .= "?";
if($x < count($fields)) {
$values .= ', ';
}
$x++;
}
$sql = "INSERT INTO {$table} (`".implode('`, `', $keys)."`) VALUES ({$values})";
echo $sql;
if(!$this->query($sql, $fields)->error()) {
return true;
}
}
return false;
}
public function error() {
return $this->_error;
}
public function count() {
return $this->_count;
}
}
classdb{
私有静态$\u实例=null;
私人$(pdo),
$\u查询,
$\u错误=false,
$\u结果,
$\计数=0;
私有函数_u构造(){
试一试{
$this->_pdo=new pdo('mysql:host='.Config::get('mysql/host')。;dbname='.Config::get('mysql/db')、Config::get('mysql/username')、Config::get('mysql/password');
//回声“连接”;
}捕获(PDO$e){
死亡($e->getMessage());
}
}
公共静态函数getInstance(){
if(!isset(self:$\实例)){
self::$_instance=new DB();
}
返回self::$\u实例;
}
公共函数查询($sql,$params=array()){
$this->_error=false;
如果($this->_query=$this->_pdo->prepare($sql)){
//$this->_pdo->setAttribute(pdo::ATTR_ERRMODE,pdo::ERRMODE_异常);
//呼应“成功”;
//echo“
”$sql。”
”;
//打印(参数);
$x=1;
如果(计数($params)){
foreach($params作为$param){
//echo$param;
$this->_query->bindValue($x,$param);
$x++;
//echo$x.“
”;
}
}
如果($this->\u query->execute()){
//呼应“成功”;
$this->\u results=$this->\u query->fetchAll(PDO::FETCH\u OBJ);
$this->_count=$this->_query->rowCount();
}否则{
$this->_error=true;
}
}
退还$this;
}
公共函数插入($table,$fields=array()){
如果(计算($fields)){
$keys=数组_键($fields);
$values=null;
$x=1;
foreach($fields作为$field){
$value.=“?”;
如果($x<计数($fields)){
$values.=',';
}
$x++;
}
$sql=“INSERT INTO{$table}(`.”内爆(`,`,$keys)。“`)值({$VALUES})”;
echo$sql;
如果(!$this->query($sql,$fields)->error()){
返回true;
}
}
返回false;
}
公共函数错误(){
返回$this->\u错误;
}
公共功能计数(){
返回$this->\u计数;
}
}
是否从$COOKIE
中提取正确的值?你POST
到create_group
但将COOKIE
存储为CreateGroup
你在回显内容,请显示打印的内容。是@richyn我提取了正确的值。我对拉取的值进行了注释。@Jeto我没有得到任何错误。但是这个脚本没有像我希望的那样工作。$\u COOKIE[“CreateGroup”]这个值COOKIE值是“admin,Sweet,kakuly”