Php 如果记录编号设置为特定编号,则有条件插入MySQL
我正在用PHP/MySQL创建一个简单的基于会话的应用程序。我正在mysql表中为每个连接到应用程序的用户存储一个会话及其关联的会话id。我要做的是在表中插入指定数量的记录后停止录制。在MySQL中可能吗 下面是一个我认为可行的示例查询,但事实并非如此Php 如果记录编号设置为特定编号,则有条件插入MySQL,php,mysql,insert,Php,Mysql,Insert,我正在用PHP/MySQL创建一个简单的基于会话的应用程序。我正在mysql表中为每个连接到应用程序的用户存储一个会话及其关联的会话id。我要做的是在表中插入指定数量的记录后停止录制。在MySQL中可能吗 下面是一个我认为可行的示例查询,但事实并非如此 $dbSessionQ = "INSERT INTO `connSessions` (`sessID`, `expiry`) VALUES ('" . session_id() . "', '3600')"; $dbSessionQ .= "WH
$dbSessionQ = "INSERT INTO `connSessions` (`sessID`, `expiry`) VALUES ('" . session_id() . "', '3600')";
$dbSessionQ .= "WHERE (SELECT COUNT(`sessID`) FROM `connSessions` < 5001) LIMIT 1";
我认为INSERT没有WHERE子句。 首先,您可以先查询计数,然后进行插入。拆分SELECT和INSERT语句。一旦你明白了这一点,使用一个简单的事务来消除竞争条件。你可以使用它。差不多
INSERT INTO `connSessions` (`sessID`, `expiry`)
SELECT '" . session_id() . "', '3600' FROM `connSessions`
WHERE (SELECT COUNT(`sessID`) FROM `connSessions`) < 5001
但是,由于您没有从connSessions中选择某些内容,我真的不明白您在这里想要做什么 您可以使用SELECT COUNTSERSESSID FROM CONNSCESSIONS查询db,如果结果小于您允许的最大值,请运行您的INSERT query应用程序逻辑。这也是我的想法。我只是想知道使用单一查询是否可行。@YoGi,使用insert into.是否可行。。选择语法,但我不建议这样做。