Php 在SP Insert之后,在重新加载之前,下一页的结果为空
我有一个将数据插入数据库的存储过程(SP从现在开始)(SaveClient,见下文)。完成SP后,我将PHP页面重定向到另一个列出条目的PHP页面(FetchObjectList,见下文)。在我重新加载/刷新页面之前,列表不会返回新创建的记录 存储过程有一个Php 在SP Insert之后,在重新加载之前,下一页的结果为空,php,mysql,stored-procedures,mysqli,Php,Mysql,Stored Procedures,Mysqli,我有一个将数据插入数据库的存储过程(SP从现在开始)(SaveClient,见下文)。完成SP后,我将PHP页面重定向到另一个列出条目的PHP页面(FetchObjectList,见下文)。在我重新加载/刷新页面之前,列表不会返回新创建的记录 存储过程有一个COMMIT,在最后,我在调用SP后关闭PHP代码中的数据库连接,并检查错误,但没有出现任何错误 页面本身返回一个200状态码,这意味着它没有被缓存,因此也不能与浏览器相关 当前的解决方法是在PHP代码中使用sleep(1),但是当代码上线时
COMMIT
,在最后,我在调用SP后关闭PHP代码中的数据库连接,并检查错误,但没有出现任何错误
页面本身返回一个200状态码,这意味着它没有被缓存,因此也不能与浏览器相关
当前的解决方法是在PHP代码中使用sleep(1)
,但是当代码上线时,我不知道它是否足够。我当然希望MySQL提供正确的结果集
编辑:我正在使用PHP的MySQLi对象接口,了解一下可能会有用。;)
我的开发计算机在Windows7x64上安装并运行了PHP5.2.17、MySQL 5.0.51a(InnoDB)和Apache 2.2.17
更新
添加了以下行callfetchobjectlist('client_tbl',NULL,NULL,1,'client_tbl.name ASC',NULL,NULL)代码>到SaveClient的末尾。结果集在显示的结果集中没有新创建的客户端
更新2
如图所示,我尝试使用SQL\u NO\u缓存
,但没有效果
现在,我将直接在PHP中尝试相同的SQL,而不是调用SPs
9月3日至20日更新
到目前为止,我已经尝试过任何合理的回答/评论,但没有任何运气。我今天尝试更新我的PHP和MySQL版本(因为我今天了解到live服务器将运行在PHP5.3.something和MySQL 5.1.something上),但没有成功。我需要更新PHP以获得更新的PHP_mysqli.dll
/libmysql.dll
,因为我得到的PHP只支持高达5.0.51a的版本,并且可能存在我的问题,因为实际的数据库中没有任何东西起作用。我尝试了MySQL安装中的libmysql.dll
,但没有成功
请注意,我还更改了包含的PHP代码,因为我实际上复制了调用user\u tbl
而不是client\u tbl
的错误代码,并对其进行了简化(删除了多查询),但结果仍然相同
我不知道赏金会发生什么,如果它回到我身边,我会再加一次
存储过程SaveClient
分隔符//
如果存在,则删除过程work.SaveClient//
创建过程work.SaveClient(
在ObjectID INT中,
在UserID INT中,
在ClientName VARCHAR(60)中,
在VersionFrom DATETIME中,
在版本中(日期时间)
根:开始
为SQLEXCEPTION回滚声明退出处理程序;
/*
默认值---------------------------------------------------------------------------------------------------------
*/
#用于阻止插入/更新
设置@DoChanges=TRUE;
设置@Fields='*';
设置@Version=NULL;
设置@UserVersion=NULL;
设置@DateNow=NOW();
设置@VersionActive=CONCAT(
“((现在()介于”,
“和的版本”,
'版本_to)或(',
'version_from