mysql_insert_id kullanmadan son eklenen kaydın id olsun ()

4 Cevap php
$sql =  
    'INSERT INTO customer 
(first_name, 
last_name, 
email, 
password, 
date_created, 
dob, 
gender, 
customer_type) 
VALUES(:first_name, 
:last_name, 
:email,  
:password,  
:date_created,  
:dob,  
:gender,  
:customer_type)' . ' SELECT LAST_INSERT_ID()' ; 

Sözdizimi doğru olup olmadığını bana söyleyebilir misiniz? I) i (SEÇ LAST_INSERT_ID kullanıyorum neden olduğunu mysql_insert_id kullanarak sorunları yaşıyorum

the error message: mysql_insert_id() [function.mysql-insert-id]: Access denied for user 'ODBC'@'localhost'

4 Cevap

Eğer ; iki sorgular arasındaki kapanış (PHP şikayet durumunda en azından MySQL bunu kabul edecek, bilmiyorum) eklerseniz çalışacaktır. Ancak, yukarıdaki gibi, çok iyi kod değil ve bunu ayırmak eğer, bir yarış durumu olacaktır. mysql_insert_id() ile karışıklığı anlamaya ve bunun için tasarlanmış gibi kullanan.

SELECT sorgu bağlamında mantıklı değil. Bunun için ayrı bir sorguyu çalıştır.

Hayır, hiçbir mantıklı olursa olsun yapar. Eğer gerçekten seçeneğini last_insert_id yapmak istiyorsa, ayrı bir (aslında, genellikle bir sonraki) deyimi içinde yapmalıyız.

Ama API düzeyinde bunu gibi yapmak gerek yoktur. Sadece yerine son insert kimliğini almak için API için uygun işlevini çağırın. Ayrı bir açıklamada için gerek yok.

Öncelikle, çok sayıda eşzamanlı kullanıcı (çarpışmalar olabilir) varsa, iki sorgu ayırmak için ikinci mysql_query aynı anda iki sorguları yürütmek için izin vermez, üçüncüsü "LAST_INSERT_ID SELECT" sorunlu hale gelebilir, bir noktalı virgül kullanmak gerekir. Mysql_insert_id ile sorun nedir?