0

当我运行这段代码

$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 的行为吗?

4

4 回答 4

6

您需要先实际运行查询:

$sql= "INSERT INTO `database`.`table`(Columns) VALUES (Values)...";
$result = mysql_query($sql);

然后在那之后:

$id = mysql_insert_id();
echo $id

如果您还有问题,请告诉我。

于 2012-06-22T20:41:45.953 回答
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连接

注意:虽然我使用原始 MySQL 驱动程序的代码,但不鼓励使用它。相反,您想使用MySQLiPDO_MySQL

于 2012-06-22T20:44:00.140 回答
2

您需要运行查询:

if($result = mysql_query($sql_select)){
    $mysqlid = mysql_insert_id();
    echo $mysqlid;
}

干杯

于 2012-06-22T20:42:14.300 回答
2

你的连接mysqli是一个对象......所以试试这个......

$mysqli = new mysqli("localhost", "user", "password", "dbname");

插入后试试这个..

echo $mysqli->insert_id;
于 2014-06-19T10:30:46.827 回答