我有一个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,
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;
}
它总是返回true。如果有人可以帮助我,我会非常感激!
答案 0 :(得分:0)
首先设置连接:
$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)来看看它里面有什么!