几个问题!请大家帮忙解决

fanfanday 2002-01-11 09:15:51
一.请问在获取mysql数据表的行数时用什么方法效率最高?
/**************
*方法一
**************/
$Result=mysql_query("select * from someTable");
$num=mysql_num_rows($Result);

/**************
*方法二
**************/
$Result=mysql_query("select count(*) AS num from someTable");
$rows_ar=mysql_fetch_array($Result);
$num=$rows_ar["num"];
请问是方法一好还是二好呢?
如果都不好,请问还有什么更好的方法呢?

二.php中在截断中文字符串的时候,如何保证不出现乱码?
请个实例!谢谢.


...全文
83 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dogun 2002-01-11
  • 打赏
  • 举报
回复
截中文的:
function msubstr($str, $start, $len)
{
$strlen = $start + $len;
for($i = 0; $i < $strlen; $i++)
{
if(ord(substr($str, $i, 1)) > 0xa0)
{
$tmpstr .= substr($str, $i, 2);
$i++;
}
else
$tmpstr .= substr($str, $i, 1);
}
return $tmpstr;
}
cpplus 2002-01-11
  • 打赏
  • 举报
回复
关于第一个问题,

你的方法一 返回了整个记录集,
方法二 只返回了记录的总数,

从理论上来讲方法二应该是更好一点(如果你只是想得到记录的总数)

其实你可以自己写一个小程序测试一下,
看看执行方法一和方法二分别用了多少时间~

fanfanday 2002-01-11
  • 打赏
  • 举报
回复
我也在精华区看到了把代码再贴下:):
$j=0;
$num=10;
for($i=0;$i<$num;$i++)
if(ord(substr($string,$i,1))>0xa0) $j++;
if($j%2!=0) $num++;
$str=substr($string,0,$num);
mardatou 2002-01-11
  • 打赏
  • 举报
回复
第一个不知道,没有测试过,第二个问题,解决方法在该论坛的精华区有。
fanfanday 2002-01-11
  • 打赏
  • 举报
回复
好好,我决定第一次给分了。

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧