gpt4 book ai didi

php - 使用 PDO 创建表

转载 作者:可可西里 更新时间:2023-10-31 22:05:26 24 4
gpt4 key购买 nike

我是 php 和这个论坛的新手,所以请原谅任何错误或错位的问题。在我提供的代码中,我只是想在数据库“mydb”中创建一个表。我测试了与数据库的连接(它有效)。这只是创建我遇到问题的表。任何建议或批评将不胜感激。谢谢

<?php
/*
*
* File: PDOcreateTabletcompany.php
* By: Jay
* Date: 24-10-13
*
* This script createsTableintoDB
*
*====================================
*
*/
try {
$db = new PDO("mysql:dbname=mydb;host=localhost", "root", "" );
} catch(PDOException $e) {
echo $e->getMessage();
}
$table= "tcompany";
$columns = "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 " ;


$createTable = $db->exec("CREATE TABLE IF NOT EXISTS mydb.$table ($columns)");

if ($createTable)
{
echo "Table $table - Created!<br /><br />";
}
else { echo "Table $table not successfully created! <br /><br />";
}
?>

最佳答案

因为在创建表时没有行受到影响 $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 注入(inject)。我已经离开了 $table = "tcompany";因为你想打印创建的表(我自己会把它留下)

我已经添加了 error-handling这将显示 try block 中的任何错误。

$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

关于php - 使用 PDO 创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19577056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com