问一个php调用数据库的问题!

eingmarra 2005-05-09 09:07:00
我的数据库里有个company_id,当有人加入新的公司时,company_id加一,但当有很多人同时注册公司的时候会不会有冲突,比如大家的company_id相等,我是说两家不同的公司company_id相同!
...全文
110 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
eingmarra 2005-05-09
  • 打赏
  • 举报
回复
mysql> select NOW() + 0;
-> 19971215235026
关键是"19971215235026"这个值如何在php程序中得到!!
eingmarra 2005-05-09
  • 打赏
  • 举报
回复
function randNum($len) {
$chars='0123456789';
mt_srand((double)microtime()*1000000*getmypid());
$random_num="";
while(strlen($random_num)<$len)
$random_num.=substr($chars,(mt_rand()%strlen($chars)),1);
return $random_num;
}
楼上对不起我忘写了!
xoyoren 2005-05-09
  • 打赏
  • 举报
回复
$id = time() . randNum();
不过时间貌似是10位不是14位
另外楼上的$len在哪里定义的?
eingmarra 2005-05-09
  • 打赏
  • 举报
回复
谢谢楼上几位!
再问我在timestamp(14)的now()是精确到秒,我想做个20位的id:是14位的时间加6位的随机校验码.以下是我的程序:
function randNum() {
$chars='0123456789';
mt_srand((double)microtime()*1000000*getmypid());
$random_num="";
while(strlen($random_num)<$len)
$random_num.=substr($chars,(mt_rand()%strlen($chars)),1);
return $random_num;
}
我想把now()值和randNum返回值连在一起,行吗?
怎么写?


youlongzaitian 2005-05-09
  • 打赏
  • 举报
回复
你的意思是要刚添加完就得到刚添加的那个公司的ID,如果公司名称都是唯一的好搞,但是公司名称不一定那取出来的值很可能就不对。
还有$result=mysql_query($query,$db);中的$result可以不写是吗?它是为了方便你得到对数据库操作的结果,在编程的时候最好加上,方便调试~
xoyoren 2005-05-09
  • 打赏
  • 举报
回复
回楼上的楼上:mysql_insert_id可以读取上一个auto_increment的id
对于非select类的$result可以不写
youlongzaitian 2005-05-09
  • 打赏
  • 举报
回复
肯定不会的,数据库执行语句肯定是有先后顺序的,这应该是数据库设计的问题,而不是程序员担心的!
eingmarra 2005-05-09
  • 打赏
  • 举报
回复
$query="INSERT INTO companies";
$query.="(company_name,company_address,telephone_1,telephone_2,mobile_1,mobile_2,fax_1,fax_2,email_1,email_2)";
$query.="VALUES('{$HTTP_POST_VARS["company_name"]}','{$HTTP_POST_VARS["company_address"]}','{$HTTP_POST_VARS["telephone_1"]}','{$HTTP_POST_VARS["telephone_2"]}',
'{$HTTP_POST_VARS["mobile_1"]}','{$HTTP_POST_VARS["mobile_2"]}','{$HTTP_POST_VARS["fax_1"]}','{$HTTP_POST_VARS["fax_2"]}','{$HTTP_POST_VARS["email_1"]}',
'{$HTTP_POST_VARS["email_2"]}')";
$result=mysql_query($query,$db);
or die("Error_Number: 00002,database query failed");
mysql_free_result($result);
我想在接下来的动作是读取company_id的值,如何做呢?
还有$result=mysql_query($query,$db);中的$result可以不写是吗?
jxflll 2005-05-09
  • 打赏
  • 举报
回复
不会有的。数据库会一个一个处理的。
eingmarra 2005-05-09
  • 打赏
  • 举报
回复
也就是说php加入数据库时是线性的.我可以在数据库的company_id段设置为auto_increasement吗,这样好象比先读出最大的id值再加一要简单,是吧?
lovey123 2005-05-09
  • 打赏
  • 举报
回复
绝对不会, 放心吧。
xuzuning 2005-05-09
  • 打赏
  • 举报
回复
不会有冲突
eingmarra 2005-05-09
  • 打赏
  • 举报
回复
$query="SELECT now()+0";
$result=mysql_query($query,$db)
or die("Error_Number: 00002,database query failed");
$result=mysql_fetch_row($result);
$friendship_id=$result[0]."111111";
自己搞定了!

21,891

社区成员

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

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