php在数据库中oracle创建数据库表的代码问题

php 用代码向数据库表中添加多个字段时,如果字段已存在,会出现什么情况 - 开源中国社区
当前访客身份:游客 [
当前位置:
&我现在是想实现一个功能,在页面前端有多个输入框,可无限添加输入框,为了能够得到字段的个数,我是想在接收字段时,以最大的判断,并且向数据库表中添加字段,如果我不清楚该字段是否已经存在,就会出现添加重复的情况,如果重复了,就让它去掉,如何实现,或者谁有更好的方法可以借鉴的
共有3个答案
<span class="a_vote_num" id="a_vote_num_
使用关联表 &主表 附表(限制最大字段数 超过后建新附表) 关系表
<span class="a_vote_num" id="a_vote_num_
建议不要对表无限添加字段,而是将要添加的字段做成一个表,这个表就2个字段“fid”,“field_name”&
然后存数据的表将fid也存入一个单独的字段
<span class="a_vote_num" id="a_vote_num_
php的mysql_fetch_field可以查看表的字段结构,知道字段结构就能判断是否存在。
实现这种自定义字段有很多种方案,根据实际情况可以考虑不同的解决方案:
1:传统的是附加属性表方式,通过附加一个属性扩展表来实现;这种查询效率会低一些,但容易扩展。
2:将表做成足够多的字段,字段名称可以写成ext1,ext2...这样,然后查询的时候用as成映射关系名;这种是单表存储和查询,效率高,但不利于扩展。
3:就是你这个扩展字段的方案;这种方式表数据量较大的情况下修改表效率很低、容易造成超时死锁等问题,不过程序的易读性和效率还是比较高的。
更多开发者职位上
有什么技术问题吗?
梦梦阁的其它问题
类似的话题连接到数据库之后,即可在数据库中创建所需要的表。在数据库中创建表,可以通过是用PHP的MSSQL库函数中的mssql_query()函数执行相应的建表SQL语句来实现。函数mssql_query()是专门用于执行SQL语句的函数,该函数代码格式:
mixed& mssql_query(string query[,resource link_identifier[,int batch_size]])
该函数参数意义:
a. 参数query为指定需要被执行的SQL语句。
b. 参数link_identifier为指定函数mssql_connect()打开SQL Server的连接标识。如果省略该参数,系统将会自动调用最后一次打开SQL Server服务器的连接。
该函数如果成功运行,则相应的SQL语句将会被执行;如果返回的结果为0 则返回true;如果执行过程中出现错误则返回false。
如何通过mssql_query()执行在库中创建表的SQL语句,实现建表操作。
$hostname="datahost";
$dbuser="sa";
$dbpasswd="123";
$dbname="tempdb";//定义数据库名
$conn=mssql_connect($hostname,$dbuser,$dbpasswd);
mssql_select_db($dbname);//选择数据库
$t_name="my_table";//定义表名
$c_t="create table $t_name (id int not null primary key, name char(12) not null)";
$result=mssql_query($c_t,$conn);//运行sql语句
if ($result )
&& echo"&font color=#66666&成功在数据库&/font&&strong&&font color=green&".$dbname."&/font&&/strong&&font color=#666666&中创建表&/font&&strong&&font color=green&".$t_name ."&/font&&/strong&";
&echo "在创建表是出现错误,建表失败!";
mssql_close($conn);
结果演示:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:20090次
排名:千里之外
原创:17篇
(1)(2)(1)(10)(1)(4)关于php中利用sql语句创建表的问题
[问题点数:20分,结帖人zalzlz]
关于php中利用sql语句创建表的问题
[问题点数:20分,结帖人zalzlz]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2014年10月 PHP大版内专家分月排行榜第三2014年8月 PHP大版内专家分月排行榜第三2014年3月 PHP大版内专家分月排行榜第三2014年1月 PHP大版内专家分月排行榜第三2012年8月 PHP大版内专家分月排行榜第三2012年2月 PHP大版内专家分月排行榜第三2012年1月 PHP大版内专家分月排行榜第三2011年12月 PHP大版内专家分月排行榜第三2011年11月 PHP大版内专家分月排行榜第三2011年6月 PHP大版内专家分月排行榜第三
2014年10月 PHP大版内专家分月排行榜第三2014年8月 PHP大版内专家分月排行榜第三2014年3月 PHP大版内专家分月排行榜第三2014年1月 PHP大版内专家分月排行榜第三2012年8月 PHP大版内专家分月排行榜第三2012年2月 PHP大版内专家分月排行榜第三2012年1月 PHP大版内专家分月排行榜第三2011年12月 PHP大版内专家分月排行榜第三2011年11月 PHP大版内专家分月排行榜第三2011年6月 PHP大版内专家分月排行榜第三
2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。PHP 创建 MySQL 表
一个数据表有一个唯一名称,并有行和列组成。
使用 MySQLi 和 PDO 创建 MySQL 表
CREATE TABLE 语句用于创建 MySQL 表。
我们将创建一个名为 "MyGuests" 的表,有 5 个列: "id", "firstname", "lastname", "email" 和 "reg_date":
CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
上表中的注意事项:
数据类型指定列可以存储什么类型的数据。完整的数据类型请参考我们的
在设置了数据类型后,你可以为没个列指定其他选项的属性:
NOT NULL - 每一行都必须含有值(不能为空),null 值是不允许的。
DEFAULT value - 设置默认值
UNSIGNED - 使用无符号数值类型,0 及正数
AUTO INCREMENT - 设置 MySQL 字段的值在新增记录时每次自动增长 1
PRIMARY KEY - 设置数据表中每条记录的唯一标识。 通常列的 PRIMARY KEY 设置为 ID 数值,与
AUTO_INCREMENT 一起使用。
每个表都应该有一个主键(本列为 "id" 列),主键必须包含唯一的值。
以下实例展示了如何在 PHP 中创建表:
实例 (MySQLi - 面向对象)
&?php$servername = "localhost";$username = "username";$password =
"password";$dbname =
"myDB";// 创建连接$conn =
new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn-&connect_error)&{
&&& die("连接失败: " . $conn-&connect_error);}
// 使用 sql 创建数据表
= "CREATE TABLE MyGuests (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY
KEY, firstname VARCHAR(30) NOT NULL,lastname VARCHAR(30) NOT NULL,email
VARCHAR(50),reg_date TIMESTAMP)";
if ($conn-&query($sql) === TRUE) {&&& echo "Table
MyGuests created successfully";} else {&&& echo
"创建数据表错误: " . $conn-&}$conn-&close();
实例 (MySQLi - 面向过程)
&?php$servername = "localhost";$username = "username";$password =
"password";$dbname =
"myDB";// 创建连接
$conn = mysqli_connect($servername, $username, $password,
// 检测连接
if (!$conn)&{
&&& die("连接失败: " . mysqli_connect_error());}// 使用 sql 创建数据表
= "CREATE TABLE MyGuests (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY
KEY, firstname VARCHAR(30) NOT NULL,lastname VARCHAR(30) NOT NULL,email
VARCHAR(50),reg_date TIMESTAMP)";
if (mysqli_query($conn, $sql)) {& & echo "数据表 MyGuests
创建成功";} else {&&& echo "创建数据表错误: " . mysqli_error($conn);}mysqli_close($conn);
实例 (PDO)
&?php$servername = "localhost";$username = "username";
$password = "password";$dbname =
"myDBPDO";try {&&& $conn = new PDO("mysql:host=$dbname=$dbname",
$username, $password);&&&
// 设置 PDO 错误模式,用于抛出异常&&& $conn-&setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);&&& // 使用 sql 创建数据表
= "CREATE TABLE MyGuests (&&& id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY
KEY, &&& firstname VARCHAR(30) NOT NULL,&&& lastname VARCHAR(30) NOT NULL,&&& email
VARCHAR(50),&&& reg_date TIMESTAMP&&& )";
&&& // 使用 exec() ,没有结果返回 &&& $conn-&exec($sql);&&&
echo "数据表 MyGuests 创建成功";}catch(PDOException $e) {&&&
echo $sql . "&br&" . $e-&getMessage();}}

我要回帖

更多关于 oracle创建数据库 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信