如何使用php变量作为表名在mysql中插入记录

时间:2016-07-21 10:48:42

标签: php mysql

$id = $_SESSION['id'];

我将表名存储在$id变量中。

当我使用带有sql查询的变量名时,它不起作用

$sql = "INSERT INTO karthick.$id (name, tin, address, product, invoice, transport, cutting, amount, vat) VALUES ('$name', '$tin', '$address', '$product', '$invoice', '$transport', '$cutting', '$amount', '$vat')";

当我替换karthick。$ id为karthick.ford时,它运行正常。但我想使用$id中存储的变量作为我的表名。我该怎么做。

编辑--------------------------- 我的PHP代码

<?php
session_start();
$id = $_SESSION['id'];
require 'database.php';
/*$sql = "CREATE TABLE karthick.details (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL)";
if($conn->query($sql)===TRUE){
    echo "table created";
}else{
    echo "table not created";
}*/

$name = mysqli_real_escape_string($conn, $_POST["cname"]);
$tin = mysqli_real_escape_string($conn, $_POST["tin"]);
$address = mysqli_real_escape_string($conn, $_POST["address"]);
$product = mysqli_real_escape_string($conn, $_POST["product"]);
$ddate = mysqli_real_escape_string($conn, $_POST["date"]);
$invoice = mysqli_real_escape_string($conn, $_POST["invoice"]);
$transport = mysqli_real_escape_string($conn, $_POST["transport"]);
$cutting = mysqli_real_escape_string($conn, $_POST["date"]);
$amount = mysqli_real_escape_string($conn, $_POST["amount"]);
$vat = mysqli_real_escape_string($conn, $_POST["vat"]);
$val = 'karthick'.$id;
echo $val;
$sql = "INSERT INTO $val (name, tin, address, product, invoice, transport, cutting, amount, vat) VALUES ('$name', '$tin', '$address', '$product', '$invoice', '$transport', '$cutting', '$amount', '$vat')";
if($conn->query($sql)===TRUE){
    echo "record inserted";
}else{
    echo "not inserted".$conn->error;
}
$conn->close();
?>

7 个答案:

答案 0 :(得分:0)

试试这个。

$val = 'karthick'.$id;
$sql = "INSERT INTO $val (name, tin, address, product, invoice, transport, cutting, amount, vat) VALUES ('$name', '$tin', '$address', '$product', '$invoice', '$transport', '$cutting', '$amount', '$vat')";

答案 1 :(得分:0)

尝试使用“INSERT INTO karthick。”。$ id。“(姓名,锡,地址,产品,发票,运输

答案 2 :(得分:0)

将$ id放在大括号{}中,例如karthick。{$ id}。查询应如下所示。

$sql = "INSERT INTO karthick.{$id} (name, tin, address, product, invoice, transport, cutting, amount, vat) VALUES ('$name', '$tin', '$address', '$product', '$invoice', '$transport', '$cutting', '$amount', '$vat')";

答案 3 :(得分:0)

$val = 'karthick'.$id;
$val = str_replace(" ","",$val);
 $sql = "INSERT INTO $val (name, tin, address, product, invoice, transport, cutting, amount, vat) VALUES ('$name', '$tin', '$address', '$product', '$invoice', '$transport', '$cutting', '$amount', '$vat')";

答案 4 :(得分:0)

尝试

$sql = "INSERT INTO karthick.{$id} (name, tin, address, product, invoice, transport, cutting, amount, vat) VALUES ('{$name}', '{$tin}', '{$address}', '{$product}', '{$invoice}', '{$transport}', '{$cutting}', '{$amount}', '{$vat}')";

答案 5 :(得分:0)

第一种方法:

尝试将PHP变量放在花括号{}

像:

$sql = "INSERT INTO karthick.{$id} (name, tin, address, product, invoice, transport, cutting, amount, vat) VALUES ('{$name}', '{$tin}', '{$address}', '{$product}', '{$invoice}', '{$transport}', '{$cutting}', '{$amount}', '{$vat}')";

第二种方法:

在引号之外使用PHP变量

像:

$sql = " INSERT INTO karthick.".$id." (name, tin, address ..... 

<强>更新

尝试使用``来封装你的表格,

$val = "`karthick`.`".$id."`";

答案 6 :(得分:0)

您正在创建karthick.details表而不是karthick.session_id