我需要一次创建多个表。我很难找出完成此任务的正确方法。目前我的脚本如下所示:
private function buildDB() {
$sql = <<<MySQL_QUERY
CREATE TABLE IF NOT EXISTS headings (
type VARCHAR(150),
heading VARCHAR(100),
uniqueid VARCHAR(100)
)
CREATE TABLE IF NOT EXISTS titles (
type VARCHAR(150),
heading VARCHAR(100),
uniqueid VARCHAR(100)
)
MySQL_QUERY;
return mysql_query($sql);
}
显然,这不起作用,并且不会创建任何表。有没有一种简单的方法可以同时创建多个表?
MySQL 变得很困惑,因为你没有分隔查询。在第一个后面添加分号CREATE
陈述:
private function buildDB() {
$sql = <<<MySQL_QUERY
CREATE TABLE IF NOT EXISTS headings (
type VARCHAR(150),
heading VARCHAR(100),
uniqueid VARCHAR(100)
);
CREATE TABLE IF NOT EXISTS titles (
type VARCHAR(150),
heading VARCHAR(100),
uniqueid VARCHAR(100)
)
MySQL_QUERY;
return mysql_query($sql);
}
另外,请确保MySQL_QUERY
位于该行的开头没有其他字符,除了分号,根据定界文档 http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc.
看到上面的代码似乎不起作用,请尝试以下代码:
private function buildDB() {
$sql1 = "CREATE TABLE IF NOT EXISTS headings (
type VARCHAR(150),
heading VARCHAR(100),
uniqueid VARCHAR(100))";
$sql2 = "CREATE TABLE IF NOT EXISTS titles (
type VARCHAR(150),
heading VARCHAR(100),
uniqueid VARCHAR(100))";
MySQL_QUERY;
return mysql_query($sql1) && mysql_query($sql2);
}
You could use mysqli_multi_query()
(MySQL版本不存在),但是你必须使用MySQLi。上面的代码返回两个查询的逻辑与,所以你仍然得到一个0
如果失败则返回。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)