Występuję przy tym problemie za każdym razem, gdy próbuję zsynchronizować średniej wielkości obiekt JSON z moją bazą danych, abyśmy mogli wykonać pewne raportowanie na ten temat. Od sprawdzenia, co może spowodować, natknąłem się na te linki w tej sprawie.Błąd ogólny: 1615 Przygotowana instrukcja musi być ponownie przygotowana
http://blog.corrlabs.com/2013/04/mysql-prepared-statement-needs-to-be-re.html http://bugs.mysql.com/bug.php?id=42041
Oba wydają mi punkt w kierunku table_definition_cache. Jednak jest to spowodowane tym, że problem mysqldump dzieje się na serwerze w tym samym czasie. Mogę was zapewnić, że tak nie jest. Ponadto zmniejszyłem kwerendę, aby wstawiać tylko jeden obiekt naraz.
public function fire($job, $data)
{
foreach (unserialize($data['message']) as $org)
{
// Ignore ID 33421 this will time out.
// It contains all users in the system.
if($org->id != 33421) {
$organization = new Organization();
$organization->orgsync_id = $org->id;
$organization->short_name = $org->short_name;
$organization->long_name = $org->long_name;
$organization->category = $org->category->name;
$organization->save();
$org_groups = $this->getGroupsInOrganization($org->id);
if (!is_int($org_groups))
{
foreach ($org_groups as $group)
{
foreach($group->account_ids as $account_id)
{
$student = Student::where('orgsync_id', '=', $account_id)->first();
if (is_object($student))
{
$student->organizations()->attach($organization->id, array('is_officer' => ($group->name == 'Officers')));
}
}
}
}
}
}
$job->delete();
}
To jest kod, który jest uruchomiony po zgłoszeniu błędu. Który zwykle przychodzi w formie.
SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared (SQL: insert into `organization_student` (`is_officer`, `organization_id`, `student_id`) values (0, 284, 26))
Który następnie następuje ten błąd powtórzony 3 razy.
SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared (SQL: insert into `organizations` (`orgsync_id`, `short_name`, `long_name`, `category`, `updated_at`, `created_at`) values (24291, SA, Society of American, Professional, 2014-09-15 16:26:01, 2014-09-15 16:26:01))
Jeśli ktokolwiek może wskazać mi właściwy kierunek, byłbym bardzo wdzięczny. Jestem bardziej ciekawy, co tak naprawdę wywołuje błąd, a następnie znajduję przyczynę tego konkretnego problemu. Wydaje się również, że jest dość powszechne w przypadku aplikacji wielopoziomowej podczas korzystania z ORM.
Mam ten sam [Błąd] (http://stackoverflow.com/questions/31957441/laravel-general-error-1615-prepared-statement-needs-to-be-re-prepared/ 31957572), aby wybrać dane z mojego mariaDB. Zauważyłem, że to wyklucza tylko podczas pracy z widokiem sql. Jedyną różnicą jest to, że błąd pokazuje się dla mnie tylko 2 razy. Odkryłeś coś nowego? Dziękuję Ci bardzo! – Tenaciousd93