$result = mssql_query("INSERT INTO table (fields) VALUES (data);
SELECT CAST(scope_identity() AS int)");
kullanımı cazip olabilir ama kullanıcı tarafından gönderilen veri ekleme edileceği gibi, boş bir dizi döner PDO, kullanmaya devam etmek istiyorum.
Maalesef, bir Linux sunucusunda PHP çalıştırıyorum ve PDO::lastInsertID()
'u desteklemeyen Microsoft SQL Server ile arabirim kurmak için dblib kullanıyorum.
Lütfen yardım edin! col1 tip int identity
bir alandır ve col2 getdate()
bir varsayılan bir datetime
geçerli:
Güncelleme kod örneği
İşte kullanıyorum kodu dahil etmek.
// Connect to db with PDO
$pdo = new PDO('dblib:host=' . $host . ';dbname=' . $database . ';', $username, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
// Connect to db with MSSQL
$sql = mssql_connect($host, $username, $password);
mssql_select_db($database, $sql);
// Create SQL statement
$query = "INSERT INTO [table] (col3, col4, col5)
VALUES ('str1', 'str2', 'str3');
SELECT SCOPE_IDENTITY() AS theID;";
// Run with MSSQL
echo "Using MSSQL...\n";
$result = mssql_query($query);
$the_id = mssql_result($result, 0, 'theID');
echo "Query OK. Returned ID is " . $the_id . "\n";
// Run with PDO
echo "\nUsing PDO...\n";
$stmt = $pdo->query($query);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($result);
Ve bu görüntülenen budur:
Using MSSQL...
Query OK. Returned ID is 149
Using PDO...
Array
(
)
Ben bir şey aptal yapılması yerine korkunç çıkmaz :)
'PDO, yine de boş bir dizi döndürür. Yanlış bir şey mi yapıyorum? – Kalessin
Belki de sonuçları taklit etmeyi deneyin: SELECT scope_identity() AS id' –
Öneriniz için teşekkürler. Yine de boş bir dizi alıyorum. Sorgumu kullandığım test kodunu içerecek şekilde güncelledim. – Kalessin