タイトルの内容は何ですか。 SELECT @@IDENTITY AS ins_id
などのクエリでは、テーブル名やその他の情報を指定して、どのテーブル/データベースを指定する必要がありますか?PHPでMSSQLにIDを挿入するには?
答えて
@@IDENTITY
は、現在のセッションで生成された最新の識別情報を返します。ほとんどの場合、おそらくSCOPE_IDENTITY
を代わりに使用して、現在のスコープで生成された最新のIDを返します。例えば
、あなたがTABLE1に行を挿入する場合、それインサートは表2に行を挿入トリガーを起動SCOPE_IDENTITY
がからアイデンティティが返されるのに対し、次いで@@IDENTITY
は表2からアイデンティティが返されテーブル1。
INSERT INTO my_table (my_column) VALUES ('test')
-- return the identity of the row you just inserted into my_table
-- regardless of any other inserts made by triggers etc
SELECT SCOPE_IDENTITY() AS ins_id
いいえ; mysqlのSELECT LAST_INSERT_ID()と同じように動作し、最後に挿入されたID値を取得します。あなたがそれについて心配しておきたいことがあるかもしれない詳細については、this in-depth examinationをご覧ください。
ここには、Joomlaコードに基づくコードスニペットがあります。 $ dbhはデータベース接続(mssql_connect()の結果)です。 $ keyName引数を渡すと、キー名(ID)が更新されます。
このコードでは、挿入された値のID(または必要な値)を取得するために、MSSQLキーワード "OUTPUT"を使用しています。
function mssql_insertObject($table, &$object, $keyName = NULL)
{
global $dbh;
if($keyName) {
$fmtsql = 'INSERT INTO '. $table .' (%s) OUTPUT INSERTED.' . $keyName . ' VALUES (%s) ';
}
else {
$fmtsql = 'INSERT INTO '. $table .' (%s) VALUES (%s) ';
}
$fields = array();
foreach (get_object_vars($object) as $k => $v) {
if (is_array($v) or is_object($v) or $v === NULL) {
continue;
}
if ($k[0] == '_') { // internal field
continue;
}
$fields[] = $k;
$values[] = "'" . str_replace("'", "''", $v) . "'";
}
$sql = sprintf($fmtsql, implode(",", $fields) , implode(",", $values));
$query = mssql_query($sql, $dbh);
if($query === false) {
return false;
}
if(is_resource($query))
{
if($keyName) {
$id = mssql_result($query, 0, 0);
if($id) {
$object->$keyName = $id;
}
}
mssql_free_result($query);
}
return true;
}
私はSCOPE_IDENTITYでGUID(pk)を取得することができないので、私はこのソリューションが好きです。しかし、mssql_resultとOUTPUT INSERTEDを組み合わせて使用すると、pkの自動インクリメント整数またはユニークですGUIDのような発言。 – greaterKing
- 1. PHP with MSSQL NULLエラーを挿入する
- 2. [Azure/mssql]クエリレコードセットを挿入するには
- 3. jTableベクトルデータをMSSQLに挿入
- 4. vbaアクセスmssqlデータを挿入
- 5. PGSQLに挿入するIDをBに挿入する
- 6. 挿入前にIDをデータベースに挿入することは可能ですか
- 7. laravel 5.2に挿入する前にIDをデータベースに挿入する方法は?
- 8. DoctrineはMSSQL 2005にDateTimeを挿入できません
- 9. PHPをjQueryに挿入するには?
- 10. 他のテーブルに現在のユーザIDを挿入するPHP
- 11. PHPでデータを取得し、IDを使って挿入するには?
- 12. mssqlは10進データ型にデータを挿入します
- 13. Sails.js/WaterLineはMSSQLデータベースにデータを挿入します
- 14. php yii2クエリyii2の挿入で自動的にIDを挿入する方法は?
- 15. Node.Js/mssqlモジュールを使用してフォームデータをテーブルに挿入する
- 16. PDOを使用してMSSQLにバイナリデータを挿入する方法
- 17. ColdFusionからMSSQLにdatetimeを挿入する
- 18. PHPカールを挿入するには?
- 19. div idをスクリプトに挿入する
- 20. 挿入後にPyMongoでオブジェクトIDを取得するには?
- 21. ファンデーションボタンIDに一意のIDを挿入
- 22. ファイルに挿入するPHP
- 23. PHPデータベースに挿入する
- 24. MSSQLの挿入のためのPHPは実行されますが、データは挿入されません
- 25. MSSQLのSQLの日付フィールドに空の値を挿入するには?
- 26. PHP MySQLi Prepared Statementトランザクション挿入ID
- 27. MSSQLテキストに挿入する方法xmlとしてデータ型フィールド
- 28. phpのメール機能でhtml、css、phpを挿入するには
- 29. id = "getdobval"を入力値に挿入する方法は?
- 30. PHPでデータベースに挿入
私も見てきました:SELECT CAST(intとしてCOALESCE(SCOPE_IDENTITY()、@@ IDENTITY)) – jjwdesign
ダウンが投票しました。私はどんなPHPを見ていない、質問は "PHPでMSSQLの挿入IDを取得する方法"でした。 –