简体   繁体   English

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

[英]How to use php variables as table name to insert records in mysql

$id = $_SESSION['id'];

i have the table name stored in the $id variable. 我将表名存储在$id变量中。

when i use the variable name with sql query it doesn't work 当我在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')";

when i replace the karthick.$id as karthick.ford it works fine. 当我将karthick。$ id替换为karthick.ford时,它可以正常工作。 but i want to use the variable stored in $id as my table name. 但我想使用存储在$id的变量作为我的表名。 how do i do it. 我该怎么做。

Edit--------------------------- my php code 编辑---------------------------我的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();
?>

Try this one. 试试这个。

$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')";

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

Place the $id in braces{} like karthick.{$id}. 将$ id放在括号{}中,例如karthick。{$ id}。 The query should be like below. 查询应如下所示。

$sql = "INSERT INTO karthick.{$id} (name, tin, address, product, invoice, transport, cutting, amount, vat) VALUES ('$name', '$tin', '$address', '$product', '$invoice', '$transport', '$cutting', '$amount', '$vat')";
$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')";

尝试

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

First method : 第一种方法:

Try putting the PHP variables inside curly braces {} 尝试将PHP变量放在花括号{}中

Like: 喜欢:

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

Second method : 第二种方法:

Use PHP variables outside quotes 在引号外使用PHP变量

Like: 喜欢:

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

Update 更新资料

try using `` to enclose your table like, 尝试使用``将表围起来,

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM