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

これは、が有効なMySQLリンク$sql_select->dbではないためです。

あなたが探しているのはこのようなものです:

$sql_select = "INSERT INTO `database`.`table`(Columns) VALUES (Values)... 
$result = mysql_query($sql_select);
$mysqlid = mysql_insert_id($result->db);

$result有効なMySQLリソースです。

また、 mysql接続を作成したことを忘れないでください

注:元のMySQLドライバーのコードを使用しましたが、その使用はお勧めしません。代わりに、MySQLiまたはPDO_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 に答える