سؤال

عند إدراج ، أقوم بالقبض على القيد الفريد mysql_errno () 1062.

هذا يعمل بشكل جيد ولكني أريد أن أجد الصف الموجود لإعادة تشغيله أو تعديله.

هل هناك طريقة للحصول على معرف الصف عند إدراج فشل؟ لقد جربت mysql_insert_id () ، لكنني أدركت أنه من شأنه أن يعيد الصف فقط الذي أقوم بإدخاله (أو فشلت في الإدراج) ، لذلك أحصل على 0.

هل لا يوجد خيار سوى إصدار mysql_query آخر وببساطة إجراء تحديد على القيمة المكررة؟

أريد فقط أن أتأكد من عدم وجود طريقة أفضل وأسرع وأكثر اقتصادا للقيام بذلك.

هل كانت مفيدة؟

المحلول

إذا كنت تحاول إدراج صف إذا كان جديدًا أو تحديث القيم الموجودة بعد ذلك استبدال في هو ما تحتاجه. يعتبر ايضا إدراج ... على بناء جملة تحديث المفتاح المكررة إذا كانت هناك قيود متورطة كاستبدال في الإرادة ، ثم أدخل.

نصائح أخرى

يجب عليك التحقق من الجدول لأي مفاتيح "فريدة" (SHOW CREATE TABLE سوف سردهم جميعًا) ، ثم استعن بجدول القيم المرتبطة في استعلام الإدراج الذي حاولت. لذلك إذا كنت تقوم بإدخال الحقول A و B و C و D و B و C لديك المفتاح الفريد عليها ، ثم:

SELECT id, B, C FROM table WHERE B=$B and C=$C;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top