php 如何输出DB类上所有SQL语句,页面上的所有 有关mysql 连接,语句 等信息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 如何输出DB类上所有SQL语句,页面上的所有 有关mysql 连接,语句 等信息相关的知识,希望对你有一定的参考价值。
参考技术A class DB_mysql/*
* @_conf Array: [hostname],[username],[password],[dataname],[dbtype],[charset],[debug]
*/
var $_conf;
var $_dblink; //mysql connect
var $_dberr =0;
var $_sqlnum=0; //SQL query times
var $_sql='';
var $pageinfo =array();
var $pageSize =20; //=0: all; >0 page size
var $pageOrder=0;
var $stripSet =0;
function DB_MYSQL($db_config='')
if(empty($db_config))
global $db_conf;
$db_config=$db_conf[0];
$this->_conf=$db_config;
function conn()
$this->_dblink=@mysql_connect($this->_conf['hostname'],$this->_conf['username'], $this->_conf['password'])
OR $this->debug("mysql_connect error:".str_replace($this->_conf['username'].'@','',mysql_error($this->_dblink)));
if($this->_dblink)
if (isset($this->_conf['charset']) and strlen($this->_conf['charset'])>0)
@mysql_query("SET character_set_connection=".$this->_conf['charset'].", character_set_results=".$this->_conf['charset'].", character_set_client=binary", $this->_dblink);
$res=@mysql_select_db($this->_conf['dataname'],$this->_dblink)
OR $this->debug("mysql_select_db error:".mysql_error($this->_dblink));
if ($res) return true;
$this->_dberr=1;
return false;
function select_db($NewDB)
$this->_conf['dataname']=$NewDB;
if(empty($this->_dblink))
return $this->conn();
$res=@mysql_select_db($this->_conf['dataname'])
OR $this->debug("mysql_select_db error:".mysql_error($this->_dblink));
if ($res) return true;
$this->_dberr=1;
return false;
/*
* @array query ($fetchType>0)
* @result query ($fetchType=0)
*/
function query($str,$fetchType=0,$file_rows='')
if (strlen($str)<1)
return false;
if(!$this->_dblink)
$this->conn();
else if (!mysql_ping($this->_dblink))
$this->close();
$this->conn();
$SQL=substr($str,0,18).'..';
if ($this->_conf['debug'] > 2)
$SQL=$str;
if(!empty($file_rows))
$SQL=$SQL.'<BR>'.$file_rows;
$this->_sql=$str;
$result=@mysql_query($str,$this->_dblink) OR $this->debug("mysql_query error:".mysql_error(),$SQL);
$this->_sqlnum=$this->_sqlnum+1;
if ($result)
if ($fetchType==1)
$arr=@mysql_fetch_array($result,1);
$this->check_query_quote($arr);
$this->free($result);
return $arr;
else if ($fetchType==2)
$arr = array();
while ($row = mysql_fetch_array($result,1))
$this->check_query_quote($row);
$arr[] = $row;
$this->free($result);
return $arr;
return $result;
else if ($fetchType>1) # NEW 2010-7-28
return array();
return false;
//END sql
/*
* @array query_page
*/
function query_page(&$page,$Field,$Table,$Where='',$Order='',$Group='')
$page=intval($page);
$psize=abs($this->pageSize);
$this->_table=$Table;
if($psize<0 or $psize>300) $psize=20;
$sql="SELECT count(*) as allnum FROM $Table $Where";
if (strlen($Group)>0)
$this->_sql="$sql $Group";
$result=$this->query("$sql $Group");
$rowsnum=$this->num_rows($result);
else
$this->_sql=$sql;
$row=$this->query($sql,1);
$rowsnum=$row['allnum']+0;
if($rowsnum==0)
$page=0;
$this->pageinfo=Array('page'=>0,'pagenum'=>0,'rowsnum'=>0);
return array();
$pagenum=$psize<1 ? 1 : ceil($rowsnum/$psize);
$limit='';
if($psize==0)
$page=1;
$pagenum=1;
else
if($page > $pagenum or $page < 1) $page=1;
if($pagenum > 1)
$limit='limit '.(($page-1)*$psize).','.$psize;
$this->pageinfo['page'] =$page;
$this->pageinfo['pagenum'] =$pagenum;
$this->pageinfo['rowsnum'] =$rowsnum;
$sql ="SELECT $Field FROM $Table $Where $Group $Order $limit";
$this->_sql=$sql;
return $this->query($sql,2);
/*
* @array fetch_array
* @type: 1 MYSQL_ASSOC 2 MYSQL_NUM #3 MYSQL_BOTH
*/
function fetch_array(&$result,$type=1)
$arr=Array();
if (!$result) return $arr;
while ($row = @mysql_fetch_array($result,$type))
$this->check_query_quote($row);
return $row;
$this->free($result);
return false;
function fetch_subarr(&$result,$keyset='',$valset='')
$arr=Array();
if (!$result) return $arr;
if (empty($keyset))
return $arr;
while ($row = @mysql_fetch_array($result,1))
$this->check_query_quote($row);
if (!empty($keyset) and isset($row[$keyset]))
$tag=$row[$keyset];
$arr[$tag]=empty($valset) ? $row : $row[$valset];
$this->free($result);
return $arr;
function check_query_quote(&$val)
if($this->stripSet) $this->stripVar($val);
function stripVar(&$val)
if(is_array($val))
foreach($val as $key => $v)
$this->stripVar($val[$key]);
else if(is_string($val))
$val=StripSlashes($val);
function num_rows($result)
return @mysql_num_rows($result);
function affected_rows()
return @mysql_affected_rows($this->_dblink);
function data_seek(&$result,$row_num=0)
return @mysql_data_seek($result,$row_num);
function free(&$result)
return @mysql_free_result($result);
function last_id()
$id=@mysql_insert_id($this->_dblink);
return intval($id);
function err_code()
return @mysql_errno($this->_dblink);
function err_msg()
return mysql_error($this->_dblink);
function close()
$result = @mysql_close($this->_dblink);
$this->_dblink=0;
/* NEW 2010-8-15 */
function getsql($val,$type=0)
if($type==1)
$g='';
if(substr($val,0,1)=='-') $g='-';
$val=preg_replace('/\D/','',$val);
if(strlen($val)==0) $val=0;
return $g.$val;
else if($type==2) return doubleval($val);
else if($type==3) return $val;
else
if ($this->_dblink) return "'" . mysql_real_escape_string($val) . "'";
else return "'" . mysql_escape_string($val) . "'";
function getstr($val,$type=0)
return $this->getsql($val,$type);
function debug($string,$SQL='')
$debug=$this->_conf['debug'];
if ($debug==4)
die($string.'<HR>'.$SQL);
else if ($debug==3)
print($string.'<HR>'.$SQL);
else if ($debug==2)
print('<!--'.$string.'<HR>'.$SQL.'-->');
else if ($debug==1)
//$code=intval($this->err_code());
return 0;
return 0;
如何在 ibm worklight 中通过 sql 适配器从 db2 检索或显示 html 页面上的数据?安卓混合应用开发
【中文标题】如何在 ibm worklight 中通过 sql 适配器从 db2 检索或显示 html 页面上的数据?安卓混合应用开发【英文标题】:How to retrieve or display data on html page from db2 by sql adapter in ibm worklight? android hybrid apps development 【发布时间】:2015-03-20 10:03:14 【问题描述】:如何在 ibm worklight 中通过 sql 适配器从 db2 中检索或显示 html 页面上的数据?
这些代码是什么?
-
如何在文本框中显示数据?
如何在标签中显示数据?
如何在下拉框中显示数据?
如何选择复选框?
例如自动从 db2 获取数据
兴趣:技术、科学等现在用户可以更新/更改
数据并保存。
如何选择单选/选项按钮?像
自动从 db2 获取数据,例如 Gender:Male 或
女性。现在用户可以更新/更改数据并保存。
就像在 jsp 中一样。 android混合应用程序开发中的代码是否相同?
<body>
<center><h2>Your Account Details</h2></center>
<%
String usertype="general";
String email=(String)session.getAttribute("email");
String pwd=(String)session.getAttribute("pwd");
String sex=new String();
Connection con=null;
try
if(email==null)
out.println("<center>Please Login to view your account!!!");
//MS ACCESS
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:dsn1");
PreparedStatement pst=null;
pst=con.prepareStatement("select * from user1 where usertype=? and email=? and pwd=?");
//"select * from user1 where usertype='"+usertype+"' and email = '"+email+"' and pwd='"+pwd+"'"
synchronized(pst)
pst.setString(1, usertype);
pst.setString(2, email);
pst.setString(3, pwd);
ResultSet rs = pst.executeQuery();
while(rs.next())
//usertype=rs.getString(1);
email=rs.getString(2);
//pwd=rs.getString(3);
sex=rs.getString(4);
//out.println("<b>");
out.println ("<center><table>");
out.println("<tr>");
out.println("<td>");
out.println("<b>Email:</b> "+email);
out.println("</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>");
out.println("<b>Sex:</b> "+sex);
out.println("</td>");
out.println("</tr>");
catch(Exception e)
e.printStackTrace();
//return false;
finally
con.close();
%>
</body>
【问题讨论】:
【参考方案1】:我的建议:
-
Read the tutorials 由 IBM 提供,用于了解 Worklight 适配器及其工作原理
搜索 Stack Overflow,因为这已被多次询问...
您需要做的是调整以下问题中提供的 JavaScript sn-ps 以将值(而不是在表格或 UL 元素中)放置到文本字段或 Select 中。这是同样的原理在重复。
由于这是重复的,因此将代码复制到此问题也没有任何价值。 请查看以下内容:
IBM Worklight - Unable to display data retrieved using SQL adapter Invoking Worklight Adapter and Displaying that JSON data in list view as strings use resultset returned by WL.Server.invokeSQLStatement within sql adapter procedure Insertion of values in database How to retrieve images from existing database using sql/http adapter from worklight application了解将数据放入 HTML 元素与 Worklight 无关,而是 JavaScript 中的标准技术。你需要掌握它的概念。
您可以通过查找 HTML 元素的 ID 并将数据附加到它,或完全替换它,或动态插入它来做到这一点。这在上述问题中得到了证明。【讨论】:
以上是关于php 如何输出DB类上所有SQL语句,页面上的所有 有关mysql 连接,语句 等信息的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ibm worklight 中通过 sql 适配器从 db2 检索或显示 html 页面上的数据?安卓混合应用开发