金色的骷髅 发表于 2015-2-16 00:23:20

MYSQL教程之MySQL数据库函数详解(3)

MySQL采用双重授权(Dual Licensed),它们是GPL和MySQL AB制定的商业许可协议。作者:随想 OSO奥索 (9) string MySQL_error(int );
关于给定的毗连,前往含有比来前往形态的与MySQL相干的函数的毛病动静字符串。空值意味着未呈现毛病。

<?php
$link=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
PRint("Connected successfully");
$query="SELECT * FROM president";
$result=mysql_query($query) or die("query failed,error message=".mysql_error());
?>

(10)array mysql_fetch_array(int result, int );
本函式用来将查询了局 result 拆到阵列变数中。若 result 没有材料,则传回 false 值。而本函式可以说是 mysql_fetch_row() 的增强函式,除可以将传回列及数字索引放入阵列以外,还可以将文字索引放入阵列中。若是好几个传回栏位都是不异的文字称号,则最初一个置入的栏位无效,处理办法是利用数字索引或为这些同名的栏位 (column) 取别号 (alias)。值得注重的是利用本函式的处置速度其实不会比mysql_fetch_row() 函式慢,要用哪一个函式仍是看利用的需求决意。参数 result_typ 是一个常数值,有以下几种常数 MYSQL_ASSOC、MYSQL_NUM 与 MYSQL_BOTH。
利用典范


<?php
$link=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("stamp_db") or die("Could not select database");
$query="SELECT last_name,first_name FROM president";
$result=mysql_query($query) or die("Query failed");
while($row=mysql_fetch_array($result))
{
printf("%s %s<BR>
",$row,$row);
printf("%s %s<BR>
",$row["last_name"],$row["first_name"]);
}
mysql_free_result($result);

?>


(11) object mysql_fetch_field(int result [,int col_num]);
前往了局集中给定列的相干元数据信息,假如没有如许的列,则前往假。假如省略col_num,则对mysql_fetch_field()的后继挪用前往了局集后续列的信息。假如不再有残剩的列。则前往值为假。假如指定了col_num,则其取值局限为0到mysql_num_fields()-1。在此情形下,mysql_num_fields()前往给定列的相干信息,假如col_num超越局限,前往假。
<?php
$link=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("stamp_db") or die("Could not select database");
$query="SELECT * FROM president";
$result=mysql_query($query) or die("Query failed");
for($i=0;$i<mysql_num_fields($result);$i++)
{
printf("information for column %d:<BR>
",$i);
$meta=mysql_fetch_field($result);
if(!$meta)
{
print("No information available<BR>
");
continue;
}
print("<PRE>
");
printf("blob: %s
",$meta->blob);
printf("max_length: %s
",$meta->max_length);
printf("multiple_key: %s
",$meta->multiple_key);
printf("name: %s
",$meta->name);
printf("not_null: %s
",$meta->not_null);
printf("numeric: %s
",$meta->numeric);
printf("primary_key: %s
",$meta->primary_key);
printf("table: %s
",$meta->table);
printf("type: %s
",$meta->type);
printf("unique_key: %s
",$meta->unique_key);
printf("unsigned: %s
",$meta->unsigned);
printf("zerofill: %s
",$meta->zerofill);
print("</PRE>
");
}
?>

(12) array mysql_fetch_lengths(int result);
本函式将 mysql_fetch_row() 处置过的最初一列材料的各栏位材料最大长度放在阵列变数当中。若履行掉败则传回 false 值。传回阵列的第一笔材料索引值是 0。

<?php
$link=mysql_pconnect("localhost","sunsoft","suixiang") or die("Could not connect");
mysql_select_db("stamp_db") or die("Could not select database");
$query="SELECT * FROM president" or die("Query failed");
$row_num=0;
while(mysql_fetch_row($result))
{
++$row_num;
printf("Lengths of values in row %d:<BR>
",$row_num);
$len=mysql_fetch_lengths($result);
if(!$len)
{
print("No information available<BR>
");
break;
}
print("<PRE>
");
for($i=0;$i<mysql_num_fields($result);$i++)
printf("Column %d: %s
",$i,$len[$i]);
print("</PRE>
");
}
?>
而且其固有的弹性使得它易于扩展以处理不断增长的需求,或当需求MySQL学习教程减弱时缩减规模。

蒙在股里 发表于 2015-2-16 00:49:36

只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。

莫相离 发表于 2015-3-7 01:11:50

比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。

老尸 发表于 2015-3-11 12:06:47

你可以简单地认为适合的就是好,不适合就是不好。

变相怪杰 发表于 2015-3-17 20:10:23

可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。

冷月葬花魂 发表于 2015-3-21 18:18:17

不好!如果出了错;不好调试;不好处理!其实web开发将代码分为3层:web层;业务逻辑层和数据访问层;一般对数据库的操作都在数据访问层来做;这样便于调试和维护!而且将来如果是换了数据库的话;你只需要改数据层的代码;其他层的基本可以不变!要是你在jsp中直接调用sql数据库;那么如果换了数据库呢?岂不都要改?如果报了异常呢?怎么做异常处理?

再现理想 发表于 2015-3-30 19:10:56

对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。

简单生活 发表于 2015-4-9 12:11:48

groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。

第二个灵魂 发表于 2015-4-13 09:56:27

代替了原来VB式的错误判断。比Oracle高级不少。

山那边是海 发表于 2015-4-17 21:25:41

一个是把SQL语句写到客户端,可以使用DataSet进行加工;

深爱那片海 发表于 2015-4-18 22:15:54

多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油

因胸联盟 发表于 2015-4-21 13:13:00

原来公司用过MYSQL自己也只是建个表写个SQL

兰色精灵 发表于 2015-4-24 11:17:27

对于微软系列的东西除了一遍遍尝试还真没有太好的办法

精灵巫婆 发表于 2015-6-12 18:31:29

是要和操作系统进行Socket通讯的场景。否则建议慎重!

愤怒的大鸟 发表于 2015-7-1 06:32:31

这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。

灵魂腐蚀 发表于 2015-7-10 10:23:36

SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。

admin 发表于 2015-7-10 20:56:26

having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。

分手快乐 发表于 2015-7-13 19:57:52

sqlserver的痛苦之处在于有用文档的匮乏,很多只是表明的东西

若天明 发表于 2015-7-14 01:11:33

可以动态传入参数,省却了动态SQL的拼写。

透明 发表于 2015-7-17 02:05:28

比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
页: [1]
查看完整版本: MYSQL教程之MySQL数据库函数详解(3)