由于创建表时没有行受到影响$createTable返回0,请参阅
manual
PDO::exec() returns the number of rows that were modified or deleted
by the SQL statement you issued. If no rows were affected,PDO::exec()
returns 0.
在创建表时,如果列名称是硬编码的,则可以免于SQL注入(如下面的代码所示).我已经离开了$table =“tcompany”;因为你想要打印创建的表(我会把它留给自己)
我添加了error-handling,它将显示try块中的任何错误.
$table = "tcompany";
try {
$db = new PDO("mysql:dbname=mydb;host=localhost", "root", "" );
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );//Error Handling
$sql ="CREATE table $table(
ID INT( 11 ) AUTO_INCREMENT PRIMARY KEY,
Prename VARCHAR( 50 ) NOT NULL,
Name VARCHAR( 250 ) NOT NULL,
StreetA VARCHAR( 150 ) NOT NULL,
StreetB VARCHAR( 150 ) NOT NULL,
StreetC VARCHAR( 150 ) NOT NULL,
County VARCHAR( 100 ) NOT NULL,
Postcode VARCHAR( 50 ) NOT NULL,
Country VARCHAR( 50 ) NOT NULL);" ;
$db->exec($sql);
print("Created $table Table.\n");
} catch(PDOException $e) {
echo $e->getMessage();//Remove or change message in production code
}
回答评论使用时的注意事项
CREATE TABLE IF NOT EXISTS