当我运行此代码时
$sql_select = "INSERT INTO `database`.`table`(Columns) VALUES (Values)... ";
$mysqlid = mysql_insert_id($sql_select->db);
echo ($mysqlid);
我收到错误消息
mysql_insert_id(): supplied argument is not a valid MySQL-Link
我尝试过这种变化;
$mysqlid = mysql_insert_id();
echo ($mysqlid);
但是返回0,根据文档,这意味着找不到auto_increment字段。我唯一能想到的是我没有调用$ sql_select中的auto_increment列,但是那里有一个auto_increment列;会影响mysql_insert_id的行为吗?
答案 0 :(得分:5)
您需要先实际运行查询:
$sql= "INSERT INTO `database`.`table`(Columns) VALUES (Values)...";
$result = mysql_query($sql);
然后在那之后:
$id = mysql_insert_id();
echo $id
如果您还有问题,请告诉我。
答案 1 :(得分:4)
这是因为$sql_select->db
不是有效的MySQL链接
您正在寻找的是这样的:
$sql_select = "INSERT INTO `database`.`table`(Columns) VALUES (Values)...
$result = mysql_query($sql_select);
$mysqlid = mysql_insert_id($result->db);
$result
是一个有效的MySQL资源。
另外,不要忘记创建了mysql connection
注意:虽然我使用original MySQL driver的代码,但不建议使用它。相反,您想使用MySQLi或PDO_MySQL
答案 2 :(得分:3)
您需要运行查询:
if($result = mysql_query($sql_select)){
$mysqlid = mysql_insert_id();
echo $mysqlid;
}
干杯
答案 3 :(得分:2)
你mysqli
的连接是一个对象......所以试试这个......
$mysqli = new mysqli("localhost", "user", "password", "dbname");
插入后尝试这个..
echo $mysqli->insert_id;