La naturaleza de las preguntas de la tabla de cambios, que yo sepa, no son declaraciones preparadas. Pero debe llamar a las funciones beginTransaction
y commit()
para la mayoría de las consultas que modifican la tabla.
$dbh->beginTransaction();
/* Change the database schema and data */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
SET name = 'hamburger'");
$sth = $dbh->exec("ALTER TABLE `dessert` ADD `field1` VARCHAR(24) NOT NULL");
/* Commit changes */
$dbh->commit();
Aunque podría usar los enunciados preparados y ejecutar por lo que yo sé.
NOTA:
MySQL llama a la función implícita commit() en CREATE TABLE
y DROP TABLE
consultas, por lo que la reversión no es posible.
Además, si desea pasar variables a una consulta de tabla alternativa, asegúrese de desinfectar su entrada de usuario (si es de donde proviene), y cree un procedimiento almacenado en su base de datos, luego llámelo utilizando DOP y adjunte sus variables para inout. Solo un pensamiento con respecto a cómo se formuló tu pregunta.
ya que falló, no es posible. – hjpotter92
@TheJumpingFrog ya que he hecho muchas preguntas sobre el desbordamiento de la pila que no han sido probadas, cada una de ellas ha sido respondida. – cgwebprojects