Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不使用PDO创建表_Php_Mysql_Pdo - Fatal编程技术网

Php 不使用PDO创建表

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

我有一个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;
}

它总是返回真的。如果有人能帮我,我会非常感激的

首先设置连接:

$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,看看它是否符合您的意图?