php輸出sql語句
查 select * form 表名 where name='nb_visits' and period >=1 and period <=3 order by value desc
輸出
if($row['value']==1){
//value==1
}else if($row['value']==2){
//value==2
}
else if($row['value']==2){
//value==3
}
② php 如何輸出DB類上所有SQL語句,頁面上的所有 有關mysql 連接,語句 等信息
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;
}
}
③ php中的sql語句
1、很多時候我們在開發時需要將字元串與變數連接起來顯示,在PHP中,字元串之間使用 「點」 來連接,也就是英文中的半形句號" . " , " . " 是字元串連接符,可以把兩個或兩個以上的字元串鏈接成一個字元串。例如:
<?php
$name="網路知道:";
$url=".";
echo$name.$url.".com";
?>
輸出結果為:
網路知道:..com
2、php在進行資料庫查詢時,如果對象是字元串,則需要使用引號將字元串區分開,這就是上面你的第一個問題,例如,你通過POST接受到的$username值是"zhanagsan",那麼:
mysqli_query($conn,"SELECT*FROMuserWhereusername='".$username."'");
php在進行解析時就是
mysqli_query($conn,"SELECT*FROMuserWhereusername='zhangsan'");
如果你覺得這樣會讓你有點看不過來,還可以這樣寫:
mysqli_query($conn,"SELECT*FROMuserWhereusername='{$username}'");
這里的{}也是起到連接的作用。
3、應用字元串連接符號有時候沒有辦法實現大量字元串的連接,PHP允許程序員在雙引號中直接包含字元串變數,當echo語句後面使用的是 雙引號 (" ")時,可以使用下面的格式來達到相同的效果(這是你的第二個問題)。例如:
<?php
$name="網路知道:";
$url=".";
echo"$name$url.com";//雙引號里的變數同一般的字元串自動進行區分
?>
但是單引號(' ')就不可以了,這樣如果不加連接符,解析後還是字元串,例如:
<?php
$name="網路知道:";
$url=".";
echo'$name$url.com';//單引號里的變數不會同一般的字元串自動進行區分
?>
最終的輸出結果就變成了
$name$url.com//最終只是輸出變數名,是字元串
④ SQL語句 關於PHP在頁面輸出 的寫法!
$sql = "select * form 表名 where name='nb_visits' and period in (1,2,3) order by value desc";
$res = mysql_query($sql);
while($result = mysql_fetch_array($res)){
if($result['period'] == 1){
echo '<td><div align="center">'.$row['value'].'</div></td>';
}
if($result['period'] == 2){
echo '<td><div align="center">'.$row['value'].'</div></td>';
}
if($result['period'] == 3){
echo '<td><div align="center">'.$row['value'].'</div></td>';
}
}
⑤ 請教大神thinkphp5 怎麼列印sql語句
[SQL]SHOWCOLUMNSFROM`think_action`[RunTime:0.001339s]
[EXPLAIN:array('id'=>'1','select_type'=>'SIMPLE','table'=>'think_action','partitions'=>NULL,'type'=>'ALL','possible_keys'=>NULL,'key'=>NULL,'key_len'=>NULL,'ref'=>NULL,'rows'=>'82','filtered'=>'100.00','extra'=>NULL,)]
[SQL]SELECT*FROM`think_action`LIMIT1[RunTime:0.000539s]
你好,一共有兩種方法可以列印sql語句,具體實現方法可參照這篇文章:
thinkphp5 怎麼列印sql語句
⑥ 我想在PHP頁面循環輸出SQL中的數值
echo $row($i); 改成
echo $row[$i];把while裡面的for循環中的echo
$row($i);改成echo
$row[$i];即可
調用數組需要使用[]
而不是括弧
⑦ thinkphp怎麼列印sql語句
thinkphp的sql語句的應用:
[SQL]SHOWCOLUMNSFROM`think_action`[RunTime:0.001339s]
[EXPLAIN:array('id'=>'1','select_type'=>'SIMPLE','table'=>'think_action','partitions'
=>NULL,'type'=>'ALL','possible_keys'=>NULL,'key'=>NULL,'key_len'=>NULL,'ref'
=>NULL,'rows'=>'82','filtered'=>'100.00','extra'=>NULL,)]
[SQL]SELECT*FROM`think_action`LIMIT1[RunTime:0.000539s]
(7)php輸出sql語句擴展閱讀:
sql的應用原則:
在關系資料庫實現過程中,第一步是建立關系模式,定義基本表的結構,即該關系模式是哪些屬性組成的,每一屬性的數據類型及數據可能的長度、是否允許為空值以及其它完整性約束條件。
定義基本表:
CREATE TABLE<表名>(<列名1><數據類型>[列級完整性約束條件]
[,<列名2><數據類型>[列級完整性約束條件]]…
[,<-列名n><數據類型>[列級完整性約束條件]]
[,表列級完整性約束條件]);
說明:
1、<>中是SQL語句必須定義的部分,[]中是SQL語句可選擇的部分,可以省略的。
2、CREATE TABLE表示是SQL的關鍵字,指示本SQL語句的功能。
3、<表名>是所要定義的基本表的名稱,一個表可以由一個或若干個屬性(列)組成,但至少有一個屬性,不允許一個屬性都沒有的表,這樣不是空表的含義。多個屬性定義由圓括弧指示其邊界,通過逗號把各個屬性定義分隔開,各個屬性名稱互不相同,可以採用任意順序排列,一般按照實體或聯系定義屬性的順序排列,關鍵字屬性組在最前面,這樣容易區分,也防止遺漏定義的屬性。
⑧ php 中寫 sql語句
<?php
<?php
header("Content-type:text/html;charset=utf-8");
//用來操作mysql數據
classMysql{
private$host;
private$port;
private$user;
private$password;
private$dbname;
private$charset;
//構造方法:初始化
publicfunction__construct($info=array()){
$this->host=isset($info['host'])?$info['host']:"localhost";
$this->port=isset($info['port'])?$info['port']:"3306";
$this->user=isset($info['user'])?$info['user']:"root";
$this->password=isset($info['password'])?$info['password']:"root";
$this->dbname=isset($info['dbname'])?$info['dbname']:"haoyigou";
$this->charset=isset($info['charset'])?$info['charset']:"utf8";
$this->db_connect();
$this->db_charset();
$this->db_name();
}
//資料庫連接
privatefunctiondb_connect(){
$res=@mysql_connect($this->host.":".$this->port,$this->user,$this->password);
if(!$res){
echo"資料庫連接失敗!<br/>";
echo"錯誤編號是:".mysql_errno()."<br/>";
echo"錯誤信息是:".iconv('gbk','utf-8',mysql_error())."<br/>";
exit;
}
}
//封裝驗證方法
publicfunctiondb_query($sql){
$res=@mysql_query($sql);
if(!$res){
echo"sql語句語法錯誤!<br/>";
echo"錯誤編號是:".mysql_errno()."<br/>";
echo"錯誤信息是:".iconv('gbk','utf-8',mysql_error())."<br/>";
exit;
}
return$res;
}
//設置字元集
privatefunctiondb_charset(){
$sql="setnames{$this->charset}";
$this->db_query($sql);
}
//使用資料庫
privatefunctiondb_name(){
$sql="use{$this->dbname}";
$this->db_query($sql);
}
//增刪改
publicfunctiondb_add($sql){
//執行語句
$this->db_query($sql);
$id=mysql_insert_id();
return$id?$id:mysql_affected_rows();
}
//查:輸出單條數據
publicfunctiondb_getone($sql){
$res=$this->db_query($sql);
//看不懂私聊我
$row=mysql_fetch_assoc($res);
return$row;
}
⑨ php怎麼用mysqli鏈接資料庫和輸出sql
一、mysql與mysqli的概念相關:
1、mysql與mysqli都是php方面的函數集,與mysql資料庫關聯不大。
2、在php5版本之前,一般是用php的mysql函數去驅動mysql資料庫的,比如mysql_query()的函數,屬於面向過程3、在php5版本以後,增加了mysqli的函數功能,某種意義上講,它是mysql系統函數的增強版,更穩定更高效更安全,與mysql_query()對應的有mysqli_query(),屬於面向對象,用對象的方式操作驅動mysql資料庫
二、mysql與mysqli的區別:
1、mysql是非持繼連接函數,mysql每次鏈接都會打開一個連接的進程。
2、mysqli是永遠連接函數,mysqli多次運行mysqli將使用同一連接進程,從而減少了伺服器的開銷。mysqli封裝了諸如事務等一些高級操作,同時封裝了DB操作過程中的很多可用的方法。
三、mysql與mysqli的用法:
1:mysql(過程方式):
$conn =
mysql_connect('localhost', 'user', 'password');//連接mysql資料庫mysql_select_db('data_base');
//選擇資料庫$result =
mysql_query('select * from data_base');//第二個可選參數,指定打開的連接$row =
mysql_fetch_row( $result ) ) //只取一行數據echo
$row[0]; //輸出第一個欄位的值
PS:mysqli以過程式的方式操作,有些函數必須指定資源,比如mysqli_query(資源標識,SQL語句),並且資源標識的參數是放在前面的,而mysql_query(SQL語句,'資源標識')的資源標識是可選的,默認值是上一個打開的連接或資源。
2、mysqli(對象方式):
$conn = new
mysqli('localhost', 'user', 'password','data_base');//要使用new操作符,最後一個參數是直接指定資料庫//假如構造時候不指定,那下一句需要$conn -> select_db('data_base')實現$result =
$conn -> query( 'select * from data_base' );$row =
$result -> fetch_row(); //取一行數據echo
row[0]; //輸出第一個欄位的值
使用new mysqli('localhost', usenamer', 'password', 'databasename');會報錯,提示如下:
Fatal error: Class 'mysqli' not found in ...
一般是mysqli是沒有開啟的,因為mysqli類不是默認開啟的,win下要改php.ini,去掉php_mysqli.dll前的;,linux下要把mysqli編譯進去。
四、mysql_connect()與mysqli_connect()
1.使用mysqli,可以把資料庫名稱當作參數傳給mysqli_connect()函數,也可以傳遞給mysqli的構造函數;
2.如果調用mysqli_query()或mysqli的對象查詢query()方法,則連接標識是必需的。
⑩ 原生php如何輸出mysql最後執行的sql
方法一:
$link = mysql_connect("192.168.1.1", "myuser", "mypass");--連接資料庫
if(FALSE == $link)
{
echo "Connect database failed!";
}
$query =
"select * from a order by id";
mysql_select_db('test', $link);--選擇資料庫
$result = mysql_query($query);--執行查詢語句
if(FALSE == $result)
{
echo "Querry failed!";
}
$i = 0;
$j = 0;
while($i++ < mysql_num_rows($result))--取總行數
{
$meta_c=0;
if($meta_c=mysql_fetch_row($result))--取每一行的結果集
{
while($j < mysql_num_fields($result))--取一行的列數
{
echo $meta_c[$j;
}
echo "
";
} // while;
$j=0;
}
mysql_free_result($result);--釋放結果集
mysql_close($link);--關閉連接
?>
方法二:
$link = mysql_connect("192.168.1.1", "myuser", "mypass");--連接資料庫
if(FALSE == $link)
{
echo "Connect database failed!
";
}
mysql_select_db('test', $link);--選擇資料庫
$result = mysql_query("select * from a order by id");--執行查詢語句
if(FALSE == $result)
{
echo "Querry failed!";
}
while($row = mysql_fetch_array($result, MYSQL_NUM))--取數組裡面的值,因為結果集以二維數組存放
{
foreach ($row as $col_value)--一一取值
{
echo " $col_value ";
}
}
mysql_free_result($result);--釋放結果集
mysql_close($link);)--關閉連接
?>