//插入NID和名字
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
//在插入内容
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
//更新列表
$mysqli->query("update xClass set Nid='$chaRuZjId'");
上边的,不知道怎么测试了。
第一次插入是可以的。
第二插入内容的话则不可以了。
更新列表是可以的。但有时是可以全部执行。
有时只有第二次插入不成功,其他可以。也就突然间的事情,发生了4-5天了才发现,也不知道环境出问题了,还是那出问题了。
不对?获取上一次插入的ID。如果不可以的,但它有时又可以第二次插入?
除开这样,还有其他的办法获取上一次的ID?或者说,修正为1条语句来插入?
是怕$c 获取不出来上一次插入的ID?
是怕$c 获取不出来上一次插入的ID?
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$chaRuZjId'");
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$chaRuZjId'");
$c 也许是空如果是空就入不了。现在估计都是空的,2个表,
第一个表是自增,第二个表是根据第一个表的ID来插入ID(NID)
if($c)判断空与不空意义不大了。是不是 insert_id 此调用需要开启服务器什么什么东西?才能获取ID?
照理不也是吖。毕竟是有时可以,有时不可以。
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$chaRuZjId'");
你说有可能是不是MYSQL 连接数过大?
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$chaRuZjId'");
$c 也许是空如果是空就入不了。现在估计都是空的,2个表,
第一个表是自增,第二个表是根据第一个表的ID来插入ID(NID)
if($c)判断空与不空意义不大了。是不是 insert_id 此调用需要开启服务器什么什么东西?才能获取ID?
照理不也是吖。毕竟是有时可以,有时不可以。
判断还是有必要的,加入第一个插入没空格,而第二个意外插入成功,那你就有多余数据出现了
不知道你的$c = $mysqli->insert_id;这个函数怎么写的
是否:mysql_insert_id($this->connid);?
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$chaRuZjId'");
$c 也许是空如果是空就入不了。现在估计都是空的,2个表,
第一个表是自增,第二个表是根据第一个表的ID来插入ID(NID)
if($c)判断空与不空意义不大了。是不是 insert_id 此调用需要开启服务器什么什么东西?才能获取ID?
照理不也是吖。毕竟是有时可以,有时不可以。
判断还是有必要的,加入第一个插入没空格,而第二个意外插入成功,那你就有多余数据出现了
不知道你的$c = $mysqli->insert_id;这个函数怎么写的
是否:mysql_insert_id($this->connid);?$c = $mysqli->insert_id; 这样的返回不是一个整数吗?把这个整数赋值给C。
c 就是上一次插入的ID数值。然后在用这个数值插入到第二次插入。
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$chaRuZjId'");
$c 也许是空如果是空就入不了。现在估计都是空的,2个表,
第一个表是自增,第二个表是根据第一个表的ID来插入ID(NID)
if($c)判断空与不空意义不大了。是不是 insert_id 此调用需要开启服务器什么什么东西?才能获取ID?
照理不也是吖。毕竟是有时可以,有时不可以。
判断还是有必要的,加入第一个插入没空格,而第二个意外插入成功,那你就有多余数据出现了
不知道你的$c = $mysqli->insert_id;这个函数怎么写的
是否:mysql_insert_id($this->connid);?$c = $mysqli->insert_id; 这样的返回不是一个整数吗?把这个整数赋值给C。
c 就是上一次插入的ID数值。然后在用这个数值插入到第二次插入。
如果没插入成功不就控制有错了
那你第二句由于你没判断,一样可以执行啊
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$chaRuZjId'");
$c 也许是空如果是空就入不了。现在估计都是空的,2个表,
第一个表是自增,第二个表是根据第一个表的ID来插入ID(NID)
if($c)判断空与不空意义不大了。是不是 insert_id 此调用需要开启服务器什么什么东西?才能获取ID?
照理不也是吖。毕竟是有时可以,有时不可以。
判断还是有必要的,加入第一个插入没空格,而第二个意外插入成功,那你就有多余数据出现了
不知道你的$c = $mysqli->insert_id;这个函数怎么写的
是否:mysql_insert_id($this->connid);?$c = $mysqli->insert_id; 这样的返回不是一个整数吗?把这个整数赋值给C。
c 就是上一次插入的ID数值。然后在用这个数值插入到第二次插入。
如果没插入成功不就控制有错了
那你第二句由于你没判断,一样可以执行啊没理由的,第一次插入的时候,肯定是自增了个ID.然后获取最近的插入ID。用此ID在插入表2的id(非自增型)。现在我疑惑的是,这ID是否有机会无法获取?
我让他在if判断前把两个打印出来看看 他直接就发现了果然不相等.很容易就找到了问题
当然 我说的未必正确,就算打印出了$c也未必能看出问题. 不过我建议你还是试一试 毕竟还没有解决对吗?片面之言不喜轻喷
这倒是很新奇。打开错误提示,执行php文件的时候记录所有的sql语句,总会有异常的吧。
$mysqli->autocommit(false);
//-> savepoint a;会把但前情况记录
$sql1="update account set balance=balance-2 where id=1";
$sql2="update account2 set balance=balance+2 where id=2";
$b1=$mysqli->query($sql1) ;
$b2=$mysqli->query($sql2) ;
if(!$b1||!$b2){
echo "失败,回滚".$mysqli->error;
//回滚!
$mysqli->rollback();
}else{
//提交[一旦提交没有机会回滚
$mysqli->commit();
}
$mysqli->close();
//显示控制台
看到用关键字做名称的就应先改掉
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$chaRuZjId'");
$c 也许是空如果是空就入不了。现在估计都是空的,2个表,
第一个表是自增,第二个表是根据第一个表的ID来插入ID(NID)
if($c)判断空与不空意义不大了。是不是 insert_id 此调用需要开启服务器什么什么东西?才能获取ID?
照理不也是吖。毕竟是有时可以,有时不可以。
判断还是有必要的,加入第一个插入没空格,而第二个意外插入成功,那你就有多余数据出现了
不知道你的$c = $mysqli->insert_id;这个函数怎么写的
是否:mysql_insert_id($this->connid);?$c = $mysqli->insert_id; 这样的返回不是一个整数吗?把这个整数赋值给C。
c 就是上一次插入的ID数值。然后在用这个数值插入到第二次插入。
如果没插入成功不就控制有错了
那你第二句由于你没判断,一样可以执行啊没理由的,第一次插入的时候,肯定是自增了个ID.然后获取最近的插入ID。用此ID在插入表2的id(非自增型)。现在我疑惑的是,这ID是否有机会无法获取?呵呵,我教你判断是绝对有用的,别说肯定的话,你总有意外插入不成功的情况下,第二句话也会执行的,按你这样的,首先是要保证第一次插入成功才能执行下一句,所以教你判断是没错的至于你第一次插入成功,而第二次插入不成功,其实检测很简单的//插入NID和名字
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
echo "insert into newscontents(nid,NewsContent)values('$c','$NeiRong')";//输出看看到底是什么
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$chaRuZjId'");这个去检测输出,看看输出的是否有问题,没问题然后复制到mysql里取执行,看看提示什么错误就OK
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$chaRuZjId'");
$c 也许是空如果是空就入不了。现在估计都是空的,2个表,
第一个表是自增,第二个表是根据第一个表的ID来插入ID(NID)
if($c)判断空与不空意义不大了。是不是 insert_id 此调用需要开启服务器什么什么东西?才能获取ID?
照理不也是吖。毕竟是有时可以,有时不可以。
判断还是有必要的,加入第一个插入没空格,而第二个意外插入成功,那你就有多余数据出现了
不知道你的$c = $mysqli->insert_id;这个函数怎么写的
是否:mysql_insert_id($this->connid);?$c = $mysqli->insert_id; 这样的返回不是一个整数吗?把这个整数赋值给C。
c 就是上一次插入的ID数值。然后在用这个数值插入到第二次插入。
如果没插入成功不就控制有错了
那你第二句由于你没判断,一样可以执行啊没理由的,第一次插入的时候,肯定是自增了个ID.然后获取最近的插入ID。用此ID在插入表2的id(非自增型)。现在我疑惑的是,这ID是否有机会无法获取?呵呵,我教你判断是绝对有用的,别说肯定的话,你总有意外插入不成功的情况下,第二句话也会执行的,按你这样的,首先是要保证第一次插入成功才能执行下一句,所以教你判断是没错的至于你第一次插入成功,而第二次插入不成功,其实检测很简单的//插入NID和名字
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
echo "insert into newscontents(nid,NewsContent)values('$c','$NeiRong')";//输出看看到底是什么
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$c'");这个去检测输出,看看输出的是否有问题,没问题然后复制到mysql里取执行,看看提示什么错误就OK经你的提示,出现无上一次插入ID ECHO 出来是空白。但比较奇怪的是,第三条UPDATE语句,也使用了$c的变量。它的UPDATE是正常的。好奇怪的事情。
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$chaRuZjId'");
$c 也许是空如果是空就入不了。现在估计都是空的,2个表,
第一个表是自增,第二个表是根据第一个表的ID来插入ID(NID)
if($c)判断空与不空意义不大了。是不是 insert_id 此调用需要开启服务器什么什么东西?才能获取ID?
照理不也是吖。毕竟是有时可以,有时不可以。
判断还是有必要的,加入第一个插入没空格,而第二个意外插入成功,那你就有多余数据出现了
不知道你的$c = $mysqli->insert_id;这个函数怎么写的
是否:mysql_insert_id($this->connid);?$c = $mysqli->insert_id; 这样的返回不是一个整数吗?把这个整数赋值给C。
c 就是上一次插入的ID数值。然后在用这个数值插入到第二次插入。
如果没插入成功不就控制有错了
那你第二句由于你没判断,一样可以执行啊没理由的,第一次插入的时候,肯定是自增了个ID.然后获取最近的插入ID。用此ID在插入表2的id(非自增型)。现在我疑惑的是,这ID是否有机会无法获取?呵呵,我教你判断是绝对有用的,别说肯定的话,你总有意外插入不成功的情况下,第二句话也会执行的,按你这样的,首先是要保证第一次插入成功才能执行下一句,所以教你判断是没错的至于你第一次插入成功,而第二次插入不成功,其实检测很简单的//插入NID和名字
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
echo "insert into newscontents(nid,NewsContent)values('$c','$NeiRong')";//输出看看到底是什么
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$c'");这个去检测输出,看看输出的是否有问题,没问题然后复制到mysql里取执行,看看提示什么错误就OK经你的提示,出现无上一次插入ID ECHO 出来是空白。但比较奇怪的是,第三条UPDATE语句,也使用了$c的变量。它的UPDATE是正常的。好奇怪的事情。
那你再输出"update xClass set Nid='$c'"
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$chaRuZjId'");
$c 也许是空如果是空就入不了。现在估计都是空的,2个表,
第一个表是自增,第二个表是根据第一个表的ID来插入ID(NID)
if($c)判断空与不空意义不大了。是不是 insert_id 此调用需要开启服务器什么什么东西?才能获取ID?
照理不也是吖。毕竟是有时可以,有时不可以。
判断还是有必要的,加入第一个插入没空格,而第二个意外插入成功,那你就有多余数据出现了
不知道你的$c = $mysqli->insert_id;这个函数怎么写的
是否:mysql_insert_id($this->connid);?$c = $mysqli->insert_id; 这样的返回不是一个整数吗?把这个整数赋值给C。
c 就是上一次插入的ID数值。然后在用这个数值插入到第二次插入。
如果没插入成功不就控制有错了
那你第二句由于你没判断,一样可以执行啊没理由的,第一次插入的时候,肯定是自增了个ID.然后获取最近的插入ID。用此ID在插入表2的id(非自增型)。现在我疑惑的是,这ID是否有机会无法获取?呵呵,我教你判断是绝对有用的,别说肯定的话,你总有意外插入不成功的情况下,第二句话也会执行的,按你这样的,首先是要保证第一次插入成功才能执行下一句,所以教你判断是没错的至于你第一次插入成功,而第二次插入不成功,其实检测很简单的//插入NID和名字
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
echo "insert into newscontents(nid,NewsContent)values('$c','$NeiRong')";//输出看看到底是什么
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$c'");这个去检测输出,看看输出的是否有问题,没问题然后复制到mysql里取执行,看看提示什么错误就OK经你的提示,出现无上一次插入ID ECHO 出来是空白。但比较奇怪的是,第三条UPDATE语句,也使用了$c的变量。它的UPDATE是正常的。好奇怪的事情。
那你再输出"update xClass set Nid='$c'"
还有什么办法知道问题在那吗?明明第一次是插入了。第二次,因丢失ID而插不入。第三次又可以插入。为什么每次都是第二次插不入呢?为什么第三次就一次都没?这问题,真的很灵异了。
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$chaRuZjId'");
$c 也许是空如果是空就入不了。现在估计都是空的,2个表,
第一个表是自增,第二个表是根据第一个表的ID来插入ID(NID)
if($c)判断空与不空意义不大了。是不是 insert_id 此调用需要开启服务器什么什么东西?才能获取ID?
照理不也是吖。毕竟是有时可以,有时不可以。
判断还是有必要的,加入第一个插入没空格,而第二个意外插入成功,那你就有多余数据出现了
不知道你的$c = $mysqli->insert_id;这个函数怎么写的
是否:mysql_insert_id($this->connid);?$c = $mysqli->insert_id; 这样的返回不是一个整数吗?把这个整数赋值给C。
c 就是上一次插入的ID数值。然后在用这个数值插入到第二次插入。
如果没插入成功不就控制有错了
那你第二句由于你没判断,一样可以执行啊没理由的,第一次插入的时候,肯定是自增了个ID.然后获取最近的插入ID。用此ID在插入表2的id(非自增型)。现在我疑惑的是,这ID是否有机会无法获取?呵呵,我教你判断是绝对有用的,别说肯定的话,你总有意外插入不成功的情况下,第二句话也会执行的,按你这样的,首先是要保证第一次插入成功才能执行下一句,所以教你判断是没错的至于你第一次插入成功,而第二次插入不成功,其实检测很简单的//插入NID和名字
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
echo "insert into newscontents(nid,NewsContent)values('$c','$NeiRong')";//输出看看到底是什么
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$c'");这个去检测输出,看看输出的是否有问题,没问题然后复制到mysql里取执行,看看提示什么错误就OK经你的提示,出现无上一次插入ID ECHO 出来是空白。但比较奇怪的是,第三条UPDATE语句,也使用了$c的变量。它的UPDATE是正常的。好奇怪的事情。
那你再输出"update xClass set Nid='$c'"
还有什么办法知道问题在那吗?明明第一次是插入了。第二次,因丢失ID而插不入。第三次又可以插入。为什么每次都是第二次插不入呢?为什么第三次就一次都没?这问题,真的很灵异了。
不用去猜测,断句输出最可靠,他最能帮你判断问题所在if($c){
//在插入内容
echo "insert into newscontents(nid,NewsContent)values('$c','$NeiRong')";//输出看看到底是什么
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
用我的这个方法,如果他能输出那个语句,说明$c应该是有值的
至于这个值是什么,看打印出来的结果,如果没输出这个语句,说明$c没有值,返回一些错误信息至于你第三句也是一样的道理,应该是用判断,而不能直接更新,即
if($c){
//在插入内容
echo "insert into newscontents(nid,NewsContent)values('$c','$NeiRong')";//输出看看到底是什么
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
echo "update xClass set Nid='$c'";
//更新列表
$mysqli->query("update xClass set Nid='$c'");
}
用这样去测试,就会防止一些意外情况的发生
用上面的输出语句可以知道$c的值
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$chaRuZjId'");
$c 也许是空如果是空就入不了。现在估计都是空的,2个表,
第一个表是自增,第二个表是根据第一个表的ID来插入ID(NID)
if($c)判断空与不空意义不大了。是不是 insert_id 此调用需要开启服务器什么什么东西?才能获取ID?
照理不也是吖。毕竟是有时可以,有时不可以。
判断还是有必要的,加入第一个插入没空格,而第二个意外插入成功,那你就有多余数据出现了
不知道你的$c = $mysqli->insert_id;这个函数怎么写的
是否:mysql_insert_id($this->connid);?$c = $mysqli->insert_id; 这样的返回不是一个整数吗?把这个整数赋值给C。
c 就是上一次插入的ID数值。然后在用这个数值插入到第二次插入。
如果没插入成功不就控制有错了
那你第二句由于你没判断,一样可以执行啊没理由的,第一次插入的时候,肯定是自增了个ID.然后获取最近的插入ID。用此ID在插入表2的id(非自增型)。现在我疑惑的是,这ID是否有机会无法获取?呵呵,我教你判断是绝对有用的,别说肯定的话,你总有意外插入不成功的情况下,第二句话也会执行的,按你这样的,首先是要保证第一次插入成功才能执行下一句,所以教你判断是没错的至于你第一次插入成功,而第二次插入不成功,其实检测很简单的//插入NID和名字
$mysqli->query("insert into news(Nid,Class)values(null,'$ming')");
//获取插入的ID
$c = $mysqli->insert_id;
if($c){
//在插入内容
echo "insert into newscontents(nid,NewsContent)values('$c','$NeiRong')";//输出看看到底是什么
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
//更新列表
$mysqli->query("update xClass set Nid='$c'");这个去检测输出,看看输出的是否有问题,没问题然后复制到mysql里取执行,看看提示什么错误就OK经你的提示,出现无上一次插入ID ECHO 出来是空白。但比较奇怪的是,第三条UPDATE语句,也使用了$c的变量。它的UPDATE是正常的。好奇怪的事情。
那你再输出"update xClass set Nid='$c'"
还有什么办法知道问题在那吗?明明第一次是插入了。第二次,因丢失ID而插不入。第三次又可以插入。为什么每次都是第二次插不入呢?为什么第三次就一次都没?这问题,真的很灵异了。
不用去猜测,断句输出最可靠,他最能帮你判断问题所在if($c){
//在插入内容
echo "insert into newscontents(nid,NewsContent)values('$c','$NeiRong')";//输出看看到底是什么
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
}
用我的这个方法,如果他能输出那个语句,说明$c应该是有值的
至于这个值是什么,看打印出来的结果,如果没输出这个语句,说明$c没有值,返回一些错误信息至于你第三句也是一样的道理,应该是用判断,而不能直接更新,即
if($c){
//在插入内容
echo "insert into newscontents(nid,NewsContent)values('$c','$NeiRong')";//输出看看到底是什么
$mysqli->query("insert into newscontents(nid,NewsContent)values('$c','$NeiRong')");
echo "update xClass set Nid='$c'";
//更新列表
$mysqli->query("update xClass set Nid='$c'");
}
用这样去测试,就会防止一些意外情况的发生
用上面的输出语句可以知道$c的值测试了。$C,是有时有值,有时没值。