关于mysql_insert_id()的问题,为什么返回的值是0
两张表,表title(titleid,title,auth)表content(id,titleid,content),表content的titleid外键于表title的...
两张表,表title(titleid,title,auth)表content(id,titleid,content),表content的titleid外键于表title的titleid,表title的titleid是主键。
$conn = db_connect(); //这步连接没问题;
$result = $conn->query("INSERT INTO title VALUES ('','".$title."','".$_SESSION['valid_username']."')"); //插入数据
echo $lastid = mysql_insert_id(); //这里返回的就是 0
$result2 = $conn->query("INSERT INTO content VALUES ('','".$lastid."','".$content."')");
请问是哪里出错了呢……我想插入标题到title表,插入内容到content表,然后两表的titleid自动对应
表title的titleid是自增的 展开
$conn = db_connect(); //这步连接没问题;
$result = $conn->query("INSERT INTO title VALUES ('','".$title."','".$_SESSION['valid_username']."')"); //插入数据
echo $lastid = mysql_insert_id(); //这里返回的就是 0
$result2 = $conn->query("INSERT INTO content VALUES ('','".$lastid."','".$content."')");
请问是哪里出错了呢……我想插入标题到title表,插入内容到content表,然后两表的titleid自动对应
表title的titleid是自增的 展开
2个回答
展开全部
你可以在建表的时候,将id的字段设置为自增。然后将下面的语句
$result = $conn->query("INSERT INTO title VALUES ('','".$title."','".$_SESSION['valid_username']."')");
改为:
$result = $conn->query("INSERT INTO title (title,auth) VALUES ('".$title."','".$_SESSION['valid_username']."')");
同样,
$result2 = $conn->query("INSERT INTO content VALUES ('','".$lastid."','".$content."')");
也改为:
$result2 = $conn->query("INSERT INTO content (titleid,content) VALUES ('".$lastid."','".$content."')");
有问题你可以继续追问,或者加我百度hi好友,我一般都在线。希望能帮到你。
$result = $conn->query("INSERT INTO title VALUES ('','".$title."','".$_SESSION['valid_username']."')");
改为:
$result = $conn->query("INSERT INTO title (title,auth) VALUES ('".$title."','".$_SESSION['valid_username']."')");
同样,
$result2 = $conn->query("INSERT INTO content VALUES ('','".$lastid."','".$content."')");
也改为:
$result2 = $conn->query("INSERT INTO content (titleid,content) VALUES ('".$lastid."','".$content."')");
有问题你可以继续追问,或者加我百度hi好友,我一般都在线。希望能帮到你。
追问
谢谢你,不过改了还是没有用呢,数据只能插入表title,虽然titleid显示30,但是还是返回0,并且表content没反应,难道要把titleid改成id?这应该不相干吧……
可不可能是mysqli的缘故,刚才我为了循环显示数据,用mysql_fetch_array($result)提示mysql_fetch_array() expects parameter 1 to be resource, object given in,只能用$result->fetch_array()…………
追答
把mysql_insert_id();改成$conn->insert_id
2016-01-06 · 知道合伙人数码行家
关注
展开全部
mysql_insert_id() 函数返回上一步 INSERT 操作产生的 ID。
如果上一查询没有产生 AUTO_INCREMENT 的 ID,则 mysql_insert_id() 返回 0。使用了DELAYED关键字。使用这个关键字后,执行插入语句时不会立即插入,而是会进入一个队列。数据库会在后台依次处理这个队列里的内容。所以SQL语句执行完毕后,由于数据未插入,就得不到最后插入的ID。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |