mysql.func.php里面語句not avialble in php7要怎么修改?
在mysql.func.php里面語句已經不在適用,報錯為the function is not avialible in php7,但是我用的wamp集成包php版本是5.5.12,感覺也不是很有影響,可是Zend Studio里面報錯也不行,想問問大家怎么改正?還有最下面報我沒有定義str? 這是第二次做了,第一次做的時候在網頁報錯也是說mysql不在適用,link要改成ODP或者什么給忘了 T T 求大神拯救
2016-04-21
<?php
//包含函數庫
require_once( dirname(dirname(__FILE__)).'\include.php' );
/**
?* 鏈接數據庫
?* @return [type] [description]
?*/
function connect(){
//鏈接數據庫
$link = @mysqli_connect(HOST,USER,PASS,DB) or exit('連接失敗');
// 設置字符集
mysqli_set_charset($link,CHARSET);
return $link;
}
/**
?* 專門用于 增
?* @param ?[表名] $table = 'wzb_admin';
?* @param ?[數組] $array = $_POST;
?* @return [type] ? ? ? ?[description]
?*/
function insert($table,$array){
$keys=join(",",array_keys($array));
$vals="'".join("','",array_values($array))."'";
$sql="insert {$table}($keys) values({$vals})";
//連接數據庫
$link = connect();
// 發送執行
$result = mysqli_query($link,$sql);
// 如果執行成功 和受影響行大于 0
if($result && mysqli_affected_rows($link) > 0){
return mysqli_insert_id($link) ? mysqli_insert_id($link) : mysqli_affected_rows($link);
}
// 關閉連接
mysqli_close($link);
}
//修改成功update `wzb_admin` set `username`='wzb',`password`='1234',`email`='123' where id=1
/**
?* 記錄的修改操作
?* @param string $table
?* @param arr $array
?* @param string $where
?* @return number
?*/
function update($table,$arr,$where=null){
//處理POST過來的數據
$name = array();
$numb = array();
? foreach ($arr as $key => $value) {
? $name[] = '`'.$key.'`';
? $numb[] = "'".$value."'";
}
//將格式化的數據拼接裝進新數組
$srt = array();
for ($i=0; $i < count($name); $i++) {?
$srt[] = "$name[$i]=$numb[$i]";
}
//將數組中的值按格式連接得到完整的修改條件
$str=join(",",array_values($srt));
//拼接sql語句
$sql="update {$table} set {$str} ".($where==null?null:" where ".$where);
//連接數據庫
$link = connect();
// 發送執行
$result = mysqli_query($link,$sql);
//判斷是否修改成功
if($result){
return mysqli_affected_rows($link);
}else{
return false;
}
// 關閉連接
mysqli_close($link);
}
/**
?* 刪除記錄
?* @param string $table
?* @param string $where
?* @return number
?*/
function delete($table,$where=null){
//連接數據庫
$link = connect();
//拼接命令
$where=$where==null?null:" where ".$where;
$sql="delete from {$table} {$where}";
//執行刪除
mysqli_query($link,$sql);
//返回信息
return mysqli_affected_rows($link);
//關閉連接
mysqli_close($link);
}
/**
?* 得到指定一條記錄
?* @param ?$sql="select * from wzb_admin where username='{$username}' and password='{$password}'";
?* @return [srray] 關聯數組
?*/
function fetchOne($sql){
$link = connect();
// 發送執行
$result = mysqli_query($link,$sql);
//取得結果
$row = mysqli_fetch_assoc($result);
// 釋放資源
mysqli_free_result($result);
// 關閉連接
return $row;
}
/**
?* 得到結果集中所有記錄 ...
?* @param string $sql
?* @param string $result_type
?* @return multitype:
?*/
function fetchAll($sql){
//連接數據庫
$link = connect();
$result=mysqli_query($link,$sql);
if($result && mysqli_affected_rows($link) > 0){
//如果有結果才執行
while(@$row = mysqli_fetch_assoc($result)){
$rows[]=$row;
}
return $rows;
// 釋放資源
mysqli_free_result($result);
// 關閉連接
mysqli_close($link);
}
return false;
}
/**
?* 得到上一步插入記錄的ID號
?* @return number
?*/
function getInsertId(){
//連接數據庫
$link = connect();
return mysqli_insert_id($link);
}
/**
?* 得到結果集中的記錄條數
?* @param unknown_type $sql
?* @return number
?*/
function getResultNum($sql){
//連接數據庫
$link = connect();
$result=mysqli_query($link,$sql);
// 關閉連接
mysqli_close($link);
//結果集中的記錄條數
return mysqli_num_rows($result);
}
// 專門用于數據庫的查詢(老師的)
function query($sql){
//連接數據庫
$link = connect();
// 發送執行
$result = mysqli_query($link,$sql);
$list = array();
// 循環遍歷結果集
while($row = mysqli_fetch_assoc($result)){
$list[] = $row;
}
// 釋放資源
mysqli_free_result($result);
// 關閉連接
mysqli_close($link);
// 直接把遍歷好的數據返回
return $list;
}
/**
?* 查詢數據庫中表的下一個自增ID
?* @param [type] $MYSQL_DB ? [description]
?* @param [type] $TABLE_NAME [description]
?*/
function AutoID($MYSQL_DB,$TABLE_NAME){
//連接數據庫
$link = @mysqli_connect(HOST,USER,PASS,'information_schema') or exit('連接失敗');
//獲取MYSQL下一個自增ID
$sql="select Auto_increment from `TABLES` where Table_Schema='{$MYSQL_DB}' AND table_name='{$TABLE_NAME}'";
//執行查詢
$result = mysqli_query($link,$sql);
//獲取返回的一條信息
$row = mysqli_fetch_assoc($result);
$rows = $row['Auto_increment'];
// 釋放資源
mysqli_free_result($result);
// 關閉連接
mysqli_close($link);
return $rows;
}
function get_str($id = 0) {?
? ? $str = "";
? ? //連接數據庫
$link = connect();
//瓶接設計SQL
? ? $sql = "select id,typename from class where pid= $id";?
? ? //查詢pid的子類的分類 ?
? ? $result = mysqli_query($link,$sql);
? ? //如果有子類
? ? if($result && mysqli_affected_rows()){?
? ? ? ? $str .= '<ul>';?
? ? ? ? while ($row = mysqli_fetch_array($result)) { //循環記錄集?
? ? ? ? ? ? $str .= "<li>" . $row['id'] . "--" . $row['title'] . "</li>"; //構建字符串?
? ? ? ? ? ? get_str($row['id']); //調用get_str(),將記錄集中的id參數傳入函數中,繼續查詢下級?
? ? ? ? }?
? ? ? ? $str .= '</ul>';?
? ? }?
? ? return $str;?
}?
/**
?* 通過不斷向下查詢的方法格式化無限級分類
?* @param ?integer $id [description]
?* @return [type] ? ? ?[description]
?*/
function get_array($id=0){?
? ? $link = connect();
? ? $sql = "select id,typename from wzb_cate where reid= $id";?
? ? $result = mysqli_query($link,$sql);//查詢子類?
? ? $arr = array();?
? ? if($result && mysqli_affected_rows($link)){//如果有子類?
? ? ? ? while($rows = mysqli_fetch_assoc($result)){ //循環記錄集?
? ? ? ? ? ? $rows['0'] = get_array($rows['id']); //調用函數,傳入參數,繼續查詢下級?
? ? ? ? ? ? $arr[] = $rows; //組合數組?
? ? ? ? }?
? ? ? ? return $arr;?
? ? }?
}?
/**
?* 遍歷下拉菜單
?* @param ?integer $reid [description]
?* @param ?array ? &$arr [description]
?* @param ?integer $i ? ?[description]
?* @return [type] ? ? ? ?[description]
?*/
function getList($reid=0,&$arr=array(),$i=0){
$i=$i+6;
$link = connect();
$sql = "SELECT * FROM `wzb_cate` WHERE `reid`=$reid";
$result = mysqli_query($link,$sql);
while ($rows = mysqli_fetch_assoc($result)){
$rows['typename'] = str_repeat(" ", $i)."|--".$rows['typename'];
$arr[]=$rows;
getList($rows['id'],$arr,$i);
}
return $arr;
}
2016-05-03
你把require_once(..'\include.php' );全部改成?require_once( dirname(dirname(__FILE__)).'\include.php' );
dirname(__FILE__)是當前目錄??dirname(dirname(__FILE__))是上級目錄 如此累推,全部把包含文件換成這樣的獲取方法就不會再有多重引用造成的報錯了。
session的開啟你直接在?include.php 這個配置文件里開啟,其他地方就沒有必要再去重復開啟了。
另:看你發的截圖報錯并不是因為session的原因,還是在于包含文件造成的。
2016-05-02
這個報錯
2016-04-21
<?php
//包含函數庫
require_once( dirname(dirname(__FILE__)).'\include.php' );
/**
require_once( dirname(dirname(__FILE__)).'\include.php' ); 是 ?../的替代寫法,因為 ../這樣的相對路徑在文件互相包含之后就會找不到。。 替代下就可以了。。