Usando una variable php para insertar valores en una tabla mysql

Estoy tratando de usar una variable para insertar en varias tablas. Cuando codifico el nombre de la tabla específica, se ejecuta correctamente, cuando utilizo una variable, obtengo un mensaje QUERY FAILEDSQLSTATE [42000]: Error de sintaxis o violación de acceso: error 1064. dbname es la variable. Estoy usando un bucle for para cambiar el nombre de la tabla. Por ejemplo, la tabla 1 es presupuesto1000, luego presupuesto 2000, etc. Aquí está mi código

$sql='INSERT INTO ".$dbName." VALUES(:id,:category,:subCategory,
:amount, :today,:description,   :year)';


try{
$st= $conn->prepare($sql);
$st->bindValue(":id", $id, PDO::PARAM_INT);
$st->bindValue(":category", $category, PDO::PARAM_INT);
$st->bindValue(":subCategory", $subCategory, PDO::PARAM_INT);
$st->bindValue(":amount", $amount, PDO::PARAM_INT);
$st->bindValue(":today", $today, PDO::PARAM_STR);
$st->bindValue(":description", $description, PDO::PARAM_STR);
$st->bindValue(":year", $year, PDO::PARAM_INT); 
$st->execute();
}catch(PDOException $e ){
echo "QUERY FAILED" . $e->getMessage();

}

preguntado el 27 de agosto de 11 a las 15:08

debe usar solo una tabla, no un montón -

2 Respuestas

Parece que hay una falta de coincidencia entre comillas, comienza con comillas simples pero luego cambia a comillas dobles cuando concatena el nombre de la base de datos en su cadena. Intente reemplazar las comillas simples al principio y al final de su cadena $ sql con comillas dobles y elimine los puntos alrededor de $ dbname, o use comillas simples hasta el final.

Respondido 27 ago 11, 19:08

Prueba esto en su lugar:

$sql='INSERT INTO '.$dbName.' VALUES(:id,:category,:subCategory,:amount, :today,:description,   :year)';

Respondido 27 ago 11, 19:08

Gracias por el ejemplo. Se cambió de comillas dobles a comillas simples y funcionó. - Aaron

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.