使用php变量将值插入mysql表

时间:2011-08-27 15:27:12

标签: php mysql

我正在尝试使用变量插入多个表。当我硬编码它正确运行的特定表名时,当我使用变量时,我得到一个QUERY FAILEDSQLSTATE [42000]:语法错误或访问冲突:1064错误。 dbname是变量。我正在使用for循环来更改表的名称。例如,表1是budget1000,然后是预算2000等。这是我的代码

$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();

}

2 个答案:

答案 0 :(得分:2)

看起来有一个引号不匹配,你从单引号开始,但在将数据库名称连接到字符串时切换到双引号。尝试用双引号替换$ sql字符串开头和结尾的单引号,并删除$ dbname周围的句点,或者一直使用单引号。

答案 1 :(得分:1)

请改为尝试:

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