PHP 求判断字段值是否存在 执行存储过程后得到某个表 TB ,如何判断此表是否存在字段名为 001 的字段,请高手指教。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $con = mysql_connect("localhost", "root", "");$db_selected = mysql_select_db("test",$con);$sql = "SHOW COLUMNS FROM test ";$result = mysql_query($sql);while($row=mysql_fetch_array($result,MYSQL_ASSOC)) {$array[]=$row[Field];} if(in_array('001',$array)) echo '存在';else echo '不存在'; 连接的是MSSQL,不是MYSQL,已经执行过一次查询得到的临时表。要如何判断这个临时表是否存在这个字段? $rs = mysql_query("DESCRIBE TB `001`");if(mysql_num_rows($rs)) echo '存在';奇怪的字段名! 将 mysql_ 前缀换成 mssql_ 试试。 如果有查询syscolumns 表的权限 那么就执行这个SQL语句。 select * from syscolumns where id=object_id('表名') and name= '字名'如果没有的话 就只能用错误 去判断了。 这个方法不行。看不明白你这句SQL语句是什么意思。我是通过执行存储过程得到表TB,要对TB表进行判断是否存在001字段,这个是排序的列值,进行列转换成行的结果,不奇怪哈。 我是通过执行存储过程得到表TB,要对TB表进行判断是否存在001字段,尽量避免再次对数据库库进行再次操作。看能否在结果中进行判断 楼主可能执行的是sp_columns存储过程,如果不是的话也不要紧,因为里面总有一个是代表field name字段的。可以把执行结果保存成array,再在array中查找 我执行的是简单的 exec 存储过程,得到某表TB,你说怎么将表字段保存到array里?再进行查找?能举个例子详加说明么? $bool = false;$sql = "sp_columns [table]";$result = sqlsrv_query($conn,$sql);while($row = sqlsrv_fetch_array($result)){ if($row['COLUMN_NAME'] == '001'){ $bool = true;//有001字段 break; }}if($bool === true){ .../有001字段要處理的代碼} 楼上的这个方法是可以,可惜我的TB表是临时表,在存储过程中创建的临时表,执行完后临时表已经删除了。TB表也不存在了,有没有其他方法?我的联系方式:317516596,麻烦你联系我下,谢谢了! 郁闷,Output输出也是个表,PHP没法都读取到。有什么方法可以去取,问题如:http://topic.csdn.net/u/20120605/15/38fd42dd-c84a-46c2-b27e-02e3fb2dd405.html?seed=611658605&r=78775230#r_78775230 $rs = mysql_query("DESCRIBE TB `001`");if(mysql_num_rows($rs)) echo '存在'; MSSQL没你这个语法,我查的是临时表,存储过程执行完后表就不存在了。请问有什么好的办法,不在对表进行查询,或者在存储过程中使用OUTPUT输出列值也行。 问一下了!! mysql_num_rows为什么一直返回5 ??? 谁有PHP 的进度条的代码 问大家一个标准做法 菜鸟问题,BS和CS架构 新手提问? 浏览网页的时候,出现如下问题:Warning: OCISessionBegin: ORA-00018: maximum number of sessions exceeded in /opt/www/html/config/o 简单问题!!! php 数组转换json有问题 大家过来看看 PHP基础问题??? 下面的这段PHP代码应该怎么改红字部分的变量才有值 PHP 毛利率计算问题
$result = mysql_query($sql);
while($row=mysql_fetch_array($result,MYSQL_ASSOC)) {
$array[]=$row[Field];
}
if(in_array('001',$array)) echo '存在';
else echo '不存在';
if(mysql_num_rows($rs)) echo '存在';
奇怪的字段名!
如果没有的话 就只能用错误 去判断了。
如果不是的话也不要紧,因为里面总有一个是代表field name字段的。
可以把执行结果保存成array,再在array中查找
$sql = "sp_columns [table]";
$result = sqlsrv_query($conn,$sql);
while($row = sqlsrv_fetch_array($result))
{
if($row['COLUMN_NAME'] == '001'){
$bool = true;//有001字段
break;
}
}if($bool === true){
.../有001字段要處理的代碼
}
http://topic.csdn.net/u/20120605/15/38fd42dd-c84a-46c2-b27e-02e3fb2dd405.html?seed=611658605&r=78775230#r_78775230
if(mysql_num_rows($rs)) echo '存在';
MSSQL没你这个语法,我查的是临时表,存储过程执行完后表就不存在了。请问有什么好的办法,不在对表进行查询,或者在存储过程中使用OUTPUT输出列值也行。