Php 不使用PDO创建表
我有一个sql命令,我正试图使用PDO执行它,它执行true,但表没有创建。我不知道我做错了什么。我环顾了一下互联网,看看是否还有其他人有这个问题,但我似乎没有找到任何解决办法。下面是SQL命令Php 不使用PDO创建表,php,mysql,pdo,Php,Mysql,Pdo,我有一个sql命令,我正试图使用PDO执行它,它执行true,但表没有创建。我不知道我做错了什么。我环顾了一下互联网,看看是否还有其他人有这个问题,但我似乎没有找到任何解决办法。下面是SQL命令 CREATE TABLE table_230 ( id VARCHAR(255), cost VARCHAR(255), title VARCHAR(255) NOT NULL, package_quantity VARCHAR(255) NOT NULL, pa
CREATE TABLE table_230
(
id VARCHAR(255),
cost VARCHAR(255),
title VARCHAR(255) NOT NULL,
package_quantity VARCHAR(255) NOT NULL,
package_cost VARCHAR(255) NOT NULL,
asin VARCHAR(15) NOT NULL,
rank VARCHAR(20) NOT NULL,
category VARCHAR(255) NOT NULL,
bb_price VARCHAR(255) NOT NULL,
seller_type VARCHAR(255) NOT NULL,
size_tier VARCHAR(255) NOT NULL,
amazon_fee VARCHAR(255) NOT NULL,
roi VARCHAR(255) NOT NULL,
parent_asin VARCHAR(255) NOT NULL,
complete TINYINT(1) DEFAULT 0
)
当我尝试执行该命令时,该命令在PHPMyAdmin中运行,但当我使用PDO时它不起作用。我使用的代码如下所示:
$create = $this->dbConnection->prepare("
CREATE TABLE IF NOT EXISTS table_" . $tableId ."
(
id VARCHAR(255),
cost VARCHAR(255),
title VARCHAR(255) NOT NULL,
package_quantity VARCHAR(255) NOT NULL,
package_cost VARCHAR(255) NOT NULL,
asin VARCHAR(15) NOT NULL,
rank VARCHAR(20) NOT NULL,
category VARCHAR(255) NOT NULL,
bb_price VARCHAR(255) NOT NULL,
seller_type VARCHAR(255) NOT NULL,
size_tier VARCHAR(255) NOT NULL,
amazon_fee VARCHAR(255) NOT NULL,
roi VARCHAR(255) NOT NULL,
parent_asin VARCHAR(255) NOT NULL,
complete TINYINT(1) DEFAULT 0
)");
if($create->execute() === true)
{
return true;
}
它总是返回真的。如果有人能帮我,我会非常感激的 首先设置连接:
$mysql_host = "servername";
$mysql_database = "dbname";
$mysql_user = "username";
$mysql_password = "pass";
try{
$conn = new PDO(
"mysql:dbname=" . $mysql_database .
";host=" . $mysql_host .
";charset=utf8" ,
$mysql_user ,
$mysql_password ,
array( //
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
)
);
}catch(PDOException $e){
echo $e->getCode();
}
然后查询:
$tableId=$conn->lastInsertId();
$create = $conn->prepare("
CREATE TABLE IF NOT EXISTS table_" . $tableId ."
(
id VARCHAR(255),
cost VARCHAR(255),
title VARCHAR(255) NOT NULL,
package_quantity VARCHAR(255) NOT NULL,
package_cost VARCHAR(255) NOT NULL,
asin VARCHAR(15) NOT NULL,
rank VARCHAR(20) NOT NULL,
category VARCHAR(255) NOT NULL,
bb_price VARCHAR(255) NOT NULL,
seller_type VARCHAR(255) NOT NULL,
size_tier VARCHAR(255) NOT NULL,
amazon_fee VARCHAR(255) NOT NULL,
roi VARCHAR(255) NOT NULL,
parent_asin VARCHAR(255) NOT NULL,
complete TINYINT(1) DEFAULT 0
)");
if($create->execute() === true)
{
return true;
}
这个代码有效。您确定$tableId变量具有预期值吗?您应该使用var_dump($tableId)来查看其中的内容 首先设置连接:
$mysql_host = "servername";
$mysql_database = "dbname";
$mysql_user = "username";
$mysql_password = "pass";
try{
$conn = new PDO(
"mysql:dbname=" . $mysql_database .
";host=" . $mysql_host .
";charset=utf8" ,
$mysql_user ,
$mysql_password ,
array( //
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
)
);
}catch(PDOException $e){
echo $e->getCode();
}
然后查询:
$tableId=$conn->lastInsertId();
$create = $conn->prepare("
CREATE TABLE IF NOT EXISTS table_" . $tableId ."
(
id VARCHAR(255),
cost VARCHAR(255),
title VARCHAR(255) NOT NULL,
package_quantity VARCHAR(255) NOT NULL,
package_cost VARCHAR(255) NOT NULL,
asin VARCHAR(15) NOT NULL,
rank VARCHAR(20) NOT NULL,
category VARCHAR(255) NOT NULL,
bb_price VARCHAR(255) NOT NULL,
seller_type VARCHAR(255) NOT NULL,
size_tier VARCHAR(255) NOT NULL,
amazon_fee VARCHAR(255) NOT NULL,
roi VARCHAR(255) NOT NULL,
parent_asin VARCHAR(255) NOT NULL,
complete TINYINT(1) DEFAULT 0
)");
if($create->execute() === true)
{
return true;
}
这个代码有效。您确定$tableId变量具有预期值吗?您应该使用var_dump($tableId)来查看其中的内容
varchar
什么都可以吗?这从来不是一个好兆头…你确定你在正确的数据库中创建了它吗?另外,测试某些东西是否真的是超字面意义上的,通常是多余的。同样令人非常担心的是,您正在创建这么多这样的表。这通常表明数据库规范化需要一些工作。我正在为我处理的每个上载创建一个表。Varchar不是所有东西都需要的,但我正在使用它进行测试,因为我对SQL不是很在行。尝试回显SQL,看看它是否是您想要的?Varchar
是否所有东西都需要?这从来不是一个好兆头…你确定你在正确的数据库中创建了它吗?另外,测试某些东西是否真的是超字面意义上的,通常是多余的。同样令人非常担心的是,您正在创建这么多这样的表。这通常表明数据库规范化需要一些工作。我正在为我处理的每个上载创建一个表。Varchar不是所有东西都需要的,但我正在使用它进行测试,因为我不太擅长SQL。尝试回显SQL,看看它是否符合您的意图?