带有表名的PHP PDO Prepared Statement

时间:2017-01-19 11:44:17

标签: php mysql pdo

我即将为我的客户及其个人网站编写我自己的小型内容管理系统。但是,我尝试通过我的php代码通过PDO提交一个准备好的mysql语句,里面有变量。

以下是我的php代码示例:

$PDO = new PDO("mysql:host=".$_SESSION['mysql_host'].";dbname=".$_SESSION['mysql_database'], $_SESSION['mysql_user'], $_SESSION['mysql_password']);
$PDO->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$script = file_get_contents("sql/create_tables.sql");
$stmt = $PDO->prepare(''.$script.''); 
$setprefix = $_SESSION['mysql_prefix'];
$stmt->bindParam(':setprefix', $setprefix);
$stmt->execute();

以下是“create_tables.sql”的例子:

CREATE TABLE :prefix_login_attempts (
  `id` int(255) NOT NULL,
  `userid` int(255) NOT NULL,
  `time` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

结果应该是,它创建一个名为“wc_login_attempts”的表,如果之前在表单中声明“wc”为“wc”。

此代码是我的安装例程之外的代码段,我的客户应该能够为正在创建的mysql表声明一个表前缀。

最好的方法是什么? 非常感谢你的帮助!

0 个答案:

没有答案