मौजूद नहीं है तो मैं थोड़ा उलझन में हूं। मैं अपने प्रत्यक्ष मेल सेवा के भीतर सक्रिय रूप से PHP रेडबीन का उपयोग ओआरएम के रूप में करता हूं और मैं उत्सुक परिस्थिति में चलता हूं - मेरे पास अद्वितीय कुंजी बाधा (यानी ग्राहक_आईडी, डिलीवरी_आईडी) और दो स्क्रिप्ट्स हैं जो इस तालिका में डेटा लिख रही हैं। वहाँ स्रोत कोड है कि डालने है या अद्यतन तालिका है:PHP रेडबीन स्टोर बीन यदि
public static function addOpenPrecedent($nSubscriberId, $nDeliveryId)
{
$oOpenStatBean = \R::findOrDispense('open_stat', 'delivery_id = :did AND subscriber_id = :sid', array(':did' => $nDeliveryId, ':sid' => $nSubscriberId));
$oOpenStatBean = array_values($oOpenStatBean);
if (1 !== count($oOpenStatBean)) {
throw new ModelOpenStatException(
"Ошибка при обновлении статистики открытий: пара (delivery_id,
subscriber_id) не является уникальной: ($nDeliveryId, $nSubscriberId).");
}
$oOpenStatBean = $oOpenStatBean[0];
if (!empty($oOpenStatBean->last_add_dt)) {
$oOpenStatBean->precedent++;
} else {
$oOpenStatBean->delivery_id = $nDeliveryId;
$oOpenStatBean->subscriber_id = $nSubscriberId;
}
$oOpenStatBean->last_add_dt = time('Y-m-d H:i:s');
\R::store($oOpenStatBean);
}
यह कहा जाता है दोनों दो स्क्रिप्ट से। और मुझे इस तालिका पर समय-समय पर भ्रष्टाचार के साथ समस्याएं हैं, क्योंकि दौड़ की स्थिति होती है। मैं एसक्यूएल "डुप्लिकेट कुंजी अपडेट पर INSERT" सुविधा के बारे में जानता हूं। लेकिन मैं अपने ओआरएम का पूरी तरह से उपयोग कर एक ही परिणाम कैसे प्राप्त कर सकता हूं?
जो आप करने की कोशिश कर रहे हैं उसे "अपरर्ट" कहा जाता है। इसके लिए googling कोशिश करें। मुझे इसके बारे में यह चर्चा मिली है: https://github.com/gabordemooij/redbean/issues/160 –