2010-12-07 18 views
8

He reescrito mi sitio php-code y agregado MySQL Stored Procedures.Cómo deshacerse del error de MySQL 'Se debe volver a preparar la declaración preparada'

En mi versión local, todo funciona bien, pero después de que cargué mi sitio al servidor de hosting me estoy convirtiendo en un error fatal 'La declaración preparada debe volver a prepararse'.

A veces la página carga, a veces la carga falla y veo este error. ¿Que es eso?

ACTUALIZACIÓN:El problema se ha ido después de pasar al servidor VPS. Gracias por la ayuda.

+0

Debe publicar un código. – jwueller

+0

Las respuestas a continuación no llegan al meollo del problema. Más respuestas en [este duplicado] (https://stackoverflow.com/questions/29480915/mysql-view-prepared-statement-and-prepared-statement-needs-to-be-re-prepar). – reinierpost

Respuesta

16

Esta es una posibilidad: MySQL bug #42041

Sugieren subiendo el valor de table_definition_cache.

Puede leer sobre la re-preparación in the MySQL docs.

+0

¡Muchas gracias! Trataré de preguntar sobre eso mi proveedor de alojamiento. Pero parece que la única forma para mí ahora es alquilar VPS o un servidor dedicado, que es caro :( – oyatek

0

mis soluciones es crear una rutina de este tipo:

DELIMITER $$ 
-- 
-- Procedimientos 
-- 
DROP PROCEDURE IF EXISTS `dch_content_class_content`$$ 

CREATE DEFINER=`renuecod`@`localhost` PROCEDURE `dch_content_class_content`(IN $classId INTEGER) 
BEGIN 
-- vw_content_class_contents is a VIEW (UNIONS) 
    select * from vw_content_class_contents; 
END$$ 

espero que esto ayuda a alguien

+0

¿Por qué necesitas esa letra grande y en negrita? –

+0

lo siento, el estilo de fuente no es necesario. Espero que mi contribución haya sido útil para alguien – Gabriel

-1

que estaba recibiendo este mismo error en Ruby on Rails en un entorno de alojamiento compartido. Puede que no sea la solución más segura, pero deshabilitar las declaraciones preparadas eliminó el mensaje de error para mí.

Esto se puede hacer mediante la adición de los "prepared_statements: true" configuración al archivo de database.yml:

production: 
    prepared_statements: false 

esto parece una solución razonable cuando usted no tiene control sobre los ajustes de configuración en el Servidor MySQL

Cuestiones relacionadas