不使用PDO创建表

时间:2016-09-26 20:26:58

标签: 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,
    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。如果有人可以帮助我,我会非常感激!

1 个答案:

答案 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)来看看它里面有什么!

相关问题