Php 模拟失败的mysql插入查询
有没有办法在mysql中模拟失败的Php 模拟失败的mysql插入查询,php,mysql,xampp,Php,Mysql,Xampp,有没有办法在mysql中模拟失败的INSERT查询?因为我在本地运行PHP/MySQL,所以返回值总是TRUE。在xampp中启用MySQL似乎不起作用 注意:我可能看错了。请随时通知我。两种方法: 撤消数据库用户的插入权限 将DB访问代码包装到中间层,并在中间层模拟故障 或者,如果您只需要测试插入,请创建哑函数,如: function my_query( $link, string $query ) { if( rand() %1 ) { return false; } e
INSERT
查询?因为我在本地运行PHP/MySQL,所以返回值总是TRUE
。在xampp中启用MySQL似乎不起作用
注意:我可能看错了。请随时通知我。两种方法:
- 撤消数据库用户的插入权限
- 将DB访问代码包装到中间层,并在中间层模拟故障
function my_query( $link, string $query ) {
if( rand() %1 ) {
return false;
} else {
return mysqli_query( $link, $query );
}
}
并更新插入的代码以调用my\u query
。调整您的故障条件和快乐测试:)两种方法:
- 撤消数据库用户的插入权限
- 将DB访问代码包装到中间层,并在中间层模拟故障
function my_query( $link, string $query ) {
if( rand() %1 ) {
return false;
} else {
return mysqli_query( $link, $query );
}
}
并更新插入的代码以调用
my\u query
。调整您的失败条件和快乐测试:)您可以创建一个具有唯一键的测试表,创建一个有效记录,然后插入另一个具有该键副本的记录。或者尝试插入到一个不存在的表中。我不明白什么的“返回值”?这个值来自哪里?为什么要模拟一个失败的插入?可能很有用:(它是Java,但如果你在mysql和php之间放置一些实用函数,那么它可能是一种可行的方法,这样你就可以拦截东西)你可以创建一个具有唯一键的测试表,创建一个有效记录,然后插入另一条带有重复键的记录。或者尝试插入到一个不存在的表中。我不明白:“返回值”是什么?这个值来自哪里?为什么要模拟一个失败的插入?可能很有用:(它是Java,但如果你在mysql和php之间放置一些实用函数,那么它可能是一种可行的方法,这样你就可以截取东西)有趣的答案。您所说的进入中间层的DB访问代码是什么意思?我以前从未听说过。请先看编辑后的答案。我所说的中间层
是指任何一个简单的类,它会做DB“对话”,所以你不必直接做,比如mysqli\u connect()
你可以做$DB=new MyDatabaseHandler()
(它在构造函数中或第一次使用时连接),而不用直接做mysqli\u query()
,你可以做$DB->query()
等等。写这样的课基本上是很简单的任务。有趣的答案。您所说的进入中间层的DB访问代码是什么意思?我以前从未听说过。请先看编辑后的答案。我所说的中间层
是指任何一个简单的类,它会做DB“对话”,所以你不必直接做,比如mysqli\u connect()
你可以做$DB=new MyDatabaseHandler()
(它在构造函数中或第一次使用时连接),而不用直接做mysqli\u query()
,你可以做$DB->query()
等等。编写这样的类基本上是相当简单的任务。