Ho riscontrato questo problema ogni volta che provo a sincronizzare un oggetto JSON di medie dimensioni con il mio database in modo da poter eseguire alcuni rapporti su di esso. Dall'analisi di ciò che può causarlo, mi sono imbattuto in questi collegamenti sull'argomento.Errore generale: 1615 L'istruzione preparata deve essere riformulata
http://blog.corrlabs.com/2013/04/mysql-prepared-statement-needs-to-be-re.html http://bugs.mysql.com/bug.php?id=42041
Entrambi sembrano puntare nella direzione di table_definition_cache me. Tuttavia questo sta dicendo che il problema è dovuto a un mysqldump che si verifica sul server allo stesso tempo. Posso assicurarti che non è questo il caso. Inoltre ho ridotto la query per inserire solo un oggetto alla volta.
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();
}
Questo è il codice in esecuzione quando viene generato l'errore. Che normalmente si presenta sotto forma di.
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))
Che viene poi seguito da questo errore ripetuto 3 volte.
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))
Se qualcuno può indicarmi la giusta direzione, sarei molto grato. Sono più curioso di ciò che sta effettivamente innescando l'errore, quindi trovando la causa di questo specifico problema. Sembra anche essere piuttosto comune nell'applicazione laravel quando si utilizza l'ORM.
Ho la stessa [errore] (http://stackoverflow.com/questions/31957441/laravel-general-error-1615-prepared-statement-needs-to-be-re-prepared/ 31957572) che lega per selezionare i dati dal mio mariaDB. Ho notato che ciò equivale all'eccezione solo quando si lavora con sql view. L'unica cosa diversa è che l'errore sta mostrando solo 2 volte per me. Hai scoperto qualcosa di nuovo? Grazie mille! – Tenaciousd93