如何将php变量作为表名的一部分?

wbgh16ku  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(333)

我有一个站点,我需要为每个客户机使用单独的表名,因为数据必须通过手动导入一直更新。
示例:堪萨斯用户纽约用户
我已经将一个全局变量设置为$client,它将在所有页面上创建状态名,因此如果我回显“$client”;然后我会看到“堪萨斯州”的例子在任何一页。
如果可能的话,我想将此变量作为sql查询的一部分,以便更容易地编写代码:

SELECT "nick, firstname, lastname, cell 
FROM database.$client_members 
where active =1 and id = $user->id";

这样做是可行的还是安全的?

3qpi33ja

3qpi33ja1#

是的,你可以做下面这样的事情

<?php

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$client = 'kansas';    

$table_name = "database." . $conn->real_escape_string($client) . "_members";

$query = sprintf("SELECT nick, firstname, lastname, cell 
FROM %s WHERE active = 1 and id = ?", $table_name);

// prepare and bind
$stmt = $conn->prepare($query);
$stmt->bind_param("i", $user->id);

但我认为你应该认真考虑规范你的数据库,以避免这样的问题

相关问题