我即将为我的客户及其个人网站编写我自己的小型内容管理系统。但是,我尝试通过我的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表声明一个表前缀。
最好的方法是什么? 非常感谢你的帮助!