Php 如何管理基于变量的多个插入
所以基本上我有一个游戏,你可以在4个类中选择。现在每个类都有自己的项集 这就是我目前的做法。当玩家创造一个角色时。 虽然很好,但是很乱。有没有更好的办法?嗯,我很确定有,但是怎么做呢?能给我拿些指针吗Php 如何管理基于变量的多个插入,php,sql,Php,Sql,所以基本上我有一个游戏,你可以在4个类中选择。现在每个类都有自己的项集 这就是我目前的做法。当玩家创造一个角色时。 虽然很好,但是很乱。有没有更好的办法?嗯,我很确定有,但是怎么做呢?能给我拿些指针吗 if ($class == 1) { INSERT INTO items (playerid, sid, pid, type, count) VALUES (".$db->lastInsertId().",101,1,3788,1), (".$db->lastInse
if ($class == 1) {
INSERT INTO items (playerid, sid, pid, type, count)
VALUES (".$db->lastInsertId().",101,1,3788,1),
(".$db->lastInsertId().",102,3,1614,1),
(".$db->lastInsertId().",103,4,1555,1),
(".$db->lastInsertId().",104,5,1308,1),
(".$db->lastInsertId().",105,6,2000,1),
(".$db->lastInsertId().",106,7,1101,1),
(".$db->lastInsertId().",107,8,1714,1),
(".$db->lastInsertId().",108,10,1010,1),
(".$db->lastInsertId().",109,102,2112,1),
(".$db->lastInsertId().",110,102,5432,1)");
}
if ($class == 2) {
INSERT INTO items (playerid, sid, pid, type, count)
VALUES (".$db->lastInsertId().",101,1,2352,1),
(".$db->lastInsertId().",102,3,3463,1),
(".$db->lastInsertId().",103,4,1223,1),
(".$db->lastInsertId().",104,5,5232,1),
(".$db->lastInsertId().",105,6,2794,1),
(".$db->lastInsertId().",106,7,1991,1),
(".$db->lastInsertId().",107,8,1239,1),
(".$db->lastInsertId().",108,10,1891,1),
(".$db->lastInsertId().",109,102,1331,1),
(".$db->lastInsertId().",110,102,3041,1)");
}
if ($class == 3) {
INSERT INTO items (playerid, sid, pid, type, count)
VALUES (".$db->lastInsertId().",101,1,2352,1),
(".$db->lastInsertId().",102,3,1255,1),
(".$db->lastInsertId().",103,4,6236,1),
(".$db->lastInsertId().",104,5,2352,1),
(".$db->lastInsertId().",105,6,2364,1),
(".$db->lastInsertId().",106,7,346,1),
(".$db->lastInsertId().",107,8,7345,1),
(".$db->lastInsertId().",108,10,1010,1),
(".$db->lastInsertId().",109,102,2112,1),
(".$db->lastInsertId().",110,102,5432,1)");
}
if ($class == 4) {
INSERT INTO items (playerid, sid, pid, type, count)
VALUES (".$db->lastInsertId().",101,1,457,1),
(".$db->lastInsertId().",102,3,1777,1),
(".$db->lastInsertId().",103,4,1145,1),
(".$db->lastInsertId().",104,5,1358,1),
(".$db->lastInsertId().",105,6,2000,1),
(".$db->lastInsertId().",106,7,1101,1),
(".$db->lastInsertId().",107,8,4527,1),
(".$db->lastInsertId().",108,10,1570,1),
(".$db->lastInsertId().",109,102,2812,1),
(".$db->lastInsertId().",110,102,5432,1)");
}
为类定义一些值数组。例如
$class_items = array(
1 => array(array(101,1,3788,1), array(102,3,1614,1),...),
2 => array(),
// etc
);
之后,您可以基于类\ id创建查询,例如
$class_id = 1;
$ins_id = $db->lastInsertId();
$query = 'INSERT INTO items (playerid, sid, pid, type, count)
VALUES ';
foreach ($class_items[$class_id] as $item) {
$query .= '("' . $ins_id . '", ' . implode(',', $item) . '), ';
}
美好的我只需要找出为什么它会给我语法错误。。。例如,在第2行“Print
$query
并尝试在phpMyAdmin中执行它”附近使用的正确语法。然后相应地更正它。啊似乎是因为它在最后一个插入处加了一个逗号。。。。。。(461101022554,1),用rtrim()解决