當前位置:首頁 » 編程語言 » php構造sql類
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

php構造sql類

發布時間: 2022-09-14 11:56:25

❶ ThinkPHP模型執行失敗,怎麼看構造的sql語句

執行失敗,如果是sql語句的語法錯誤,你打開thinkphp的調試模式,它會提示你什麼錯誤,並且把sql語句列印出來。
如果不是sql語句的語法錯誤,而是構造的sql語句不能達到你的要求,你需要查看的話,你可以使用M()->getLastSql();這個方法可以查看最後執行的一句sql語句,只要把這句放到你想要查看的構造的sql語句的後面就可以了。想要查看就用print_r把返回值列印出來就可以了

❷ 用php中sql建資料庫和表

下個開源免費的資料庫mysql安裝程序 和客戶端;

然後再使用SQL建庫,或者就直接使用test資料庫

接著創建表、建表結構
CREATE TABLE 的語法是:

CREATE TABLE "表格名"
("欄位 1" "欄位 1 資料種類",
"欄位 2" "欄位 2 資料種類",
... )

若我們要建立顧客表格,我們就打入以下的 SQL:

CREATE TABLE customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date date)

其他的SQL可以參考
http://sql.1keydata.com/cn/sql-create.php

❸ php 裡面的 _Sql_list方法作用是什麼

這個不用實例化

你只要實例化了資料庫類就行了

我讀了你這個類,$sql在裡面應該是SQL語句的意思,$sql只是類裡面的形式參數。
實際你只要傳遞一個值進去就行了。

比如:
<?php
$db=new mysql('localhost','root','','test','')
//實例化mysql類。第五參數我看不懂,可能這類有點小問題的
$db->query("select * from test");
//訪問query函數,參數select * from test
.....
?>
這個類不好。我給你一個把:
<?php
class mysql{

private $db_host; //資料庫主機
private $db_user; //資料庫用戶名
private $db_pwd; //資料庫用戶名密碼
private $db_database; //資料庫名
private $conn; //資料庫連接標識;
private $result; //執行query命令的結果資源標識
private $sql; //sql執行語句
private $row; //返回的條目數
private $coding; //資料庫編碼,GBK,UTF8,gb2312
private $bulletin = true; //是否開啟錯誤記錄
private $show_error = true; //測試階段,顯示所有錯誤,具有安全隱患,默認關閉
private $is_error = false; //發現錯誤是否立即終止,默認true,建議不啟用,因為當有問題時用戶什麼也看不到是很苦惱的

/*構造函數*/
function __construct($db_host,$db_user,$db_pwd,$db_database,$conn,$coding){
$this->db_host=$db_host;
$this->db_user=$db_user;
$this->db_pwd = $db_pwd;
$this->db_database=$db_database;
$this->conn=$conn;
$this->coding=$coding;
$this->connect();
}

/*資料庫連接*/
function connect()
{
if($this->conn=="pconn"){
//永久鏈接
$this->conn=mysql_pconnect($this->db_host,$this->db_user,$this->db_pwd);
}else{
//即使鏈接
$this->conn=mysql_connect($this->db_host,$this->db_user,$this->db_pwd);
}

if(!mysql_select_db($this->db_database,$this->conn)){
if($this->show_error){
$this->show_error("資料庫不可用:",$this->db_database);
}
}
mysql_query("SET NAMES $this->coding");
}

/*資料庫執行語句,可執行查詢添加修改刪除等任何sql語句*/
function query($sql)
{
if($sql == ""){
$this->show_error("sql語句錯誤:","sql查詢語句為空");}
$this->sql = $sql;

$result = mysql_query($this->sql,$this->conn);

if(!$result){
//調試中使用,sql語句出錯時會自動列印出來
if($this->show_error){
$this->show_error("錯誤sql語句:",$this->sql);
}
}else{
$this->result = $result;
}
return $this->result;
}

/*創建添加新的資料庫*/
function create_database($database_name){
$database=$database_name;
$sqlDatabase = 'create database '.$database;
$this->query($sqlDatabase);
}

/*查詢伺服器所有資料庫*/
//將系統資料庫與用戶資料庫分開,更直觀的顯示?
function show_databases(){
$this->query("show databases");
echo "現有資料庫:".$amount =$this->db_num_rows($rs);
echo "<br />";
$i=1;
while($row = $this->fetch_array($rs)){
echo "$i $row[Database]";
echo "<br />";
$i++;
}
}

//以數組形式返回主機中所有資料庫名
function databases()
{
$rsPtr=mysql_list_dbs($this->conn);
$i=0;
$cnt=mysql_num_rows($rsPtr);
while($i<$cnt)
{
$rs[]=mysql_db_name($rsPtr,$i);
$i++;
}
return $rs;
}

/*查詢資料庫下所有的表*/
function show_tables($database_name){
$this->query("show tables");
echo "現有資料庫:".$amount = $this->db_num_rows($rs);
echo "<br />";
$i=1;
while($row = $this->fetch_array($rs)){
$columnName="Tables_in_".$database_name;
echo "$i $row[$columnName]";
echo "<br />";
$i++;
}
}

/*
mysql_fetch_row() array $row[0],$row[1],$row[2]
mysql_fetch_array() array $row[0] 或 $row[id]
mysql_fetch_assoc() array 用$row->content 欄位大小寫敏感
mysql_fetch_object() object 用$row[id],$row[content] 欄位大小寫敏感
*/

/*取得結果數據*/
function mysql_result_li()
{
return mysql_result($str);
}

/*取得記錄集,獲取數組-索引和關聯,使用$row['content'] */
function fetch_array()
{
return mysql_fetch_array($this->result);
}

//獲取關聯數組,使用$row['欄位名']
public function fetch_assoc()
{
return mysql_fetch_assoc($this->result);
}

//獲取數字索引數組,使用$row[0],$row[1],$row[2]
function fetch_row()
{
return mysql_fetch_row($this->result);
}

//獲取對象數組,使用$row->content
function fetch_Object()
{
return mysql_fetch_object($this->result);
}

//簡化查詢select
function findall($table)
{
$this->query("SELECT * FROM $table");
}

//簡化查詢select
function select($table,$columnName,$condition)
{
if($columnName==""){
$columnName="*";
}

$this->query("SELECT $columnName FROM $table $condition");

}

//簡化刪除del
function delete($table,$condition){
$this->query("DELETE FROM $table WHERE $condition");
}

❹ 如何利用PHP執行.SQL文件

其實很簡單,就是獲取sql文件中的內容,然後將每一句sql語句一次執行就行啦。
這是代碼

//讀取文件內容
$_sql = file_get_contents('test.sql');

$_arr = explode(';', $_sql);
$_mysqli = new mysqli(DB_HOST,DB_USER,DB_PASS);
if (mysqli_connect_errno()) {
exit('連接資料庫出錯');
}
//執行sql語句
foreach ($_arr as $_value) {
$_mysqli->query($_value.';');
}
$_mysqli->close();
$_mysqli = null;

上面text.sql是你需要執行的sql文件,DB_HOST主機名,DB_USER用戶名,DB_PASS密碼!
這只是最基本的自動執行sql文件,你還可以自定義生成資料庫的名稱,方法就是將sql文件中下面的代碼刪去

1
2
CREATE DATABASE IF NOT EXISTS 資料庫名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE 資料庫名

然後在text.php中執行所有的sql語句前添加代碼
$_mysqli->query("CREATE DATABASE IF NOT EXISTS 資料庫名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;");
$_mysqli->query("USE 資料庫名");

❺ php 封裝MySQL類怎麼,不能執行sql語句query()

看不懂你寫的什麼。給個現成的你

<?php
/**
*CreatedbyPhpStorm.
*User:TAOYU
*Date:14-11-16
*Time:上午1:28
*/
classmysql
{
protected$host;
protected$user;
protected$pwd;
protected$port;
protected$error;
protected$db;
protected$charset;
protected$conn=null;
publicstatic$total;//獲得總條數
publicstatic$pages;//總頁數
publicstatic$pagesize;//每頁顯示條數
public$act_page;//獲取當前頁碼
public$start;//開始條數

//構造方法,初始化時連接資料庫
publicfunction__construct($h='localhost',$u='root',$pwd='123',$port=3306)
{
$this->host=$h;
$this->user=$u;
$this->pwd=$pwd;
$this->port=$port;
$this->connect();
$this->selectDb('bookboss');
$this->setChar('utf8');
}

publicfunction__destruct()
{
mysql_close();
}

//連接方法
publicfunctionconnect()
{
if($this->conn=mysql_connect($this->host,$this->user,$this->pwd,$this->port)){
returntrue;
}else{
$this->error="連接失敗!";
returnfalse;
}
}

//選庫方法
publicfunctionselectDb($dbName)
{
//use後要有空格!!!注意!!!
$sql="use".$dbName;
$this->db=$dbName;
return$this->query($sql);
}

//設置字元集方法
publicfunctionsetChar($char)
{
//setnames後要有空格!!!注意!!!
$sql="setnames".$char;
return$this->query($sql);
}

//查詢方法
publicfunctionquery($sql)
{
$rs=mysql_query($sql,$this->conn);
if(!$rs){
/*$this->error=mysql_error($this->conn);
$this->log($this->error);*/
returnfalse;
}else{
return$rs;
}
}

//取指定數據
/*publicfunctiongetData($page,$pagesize=5)
{
$start=($page-1)*$pagesize;
$rs=$this->query("select*fromstudentlimit$start,$pagesize");
if(!$rs){
returnfalse;
}else{
$list=array();
while($row=mysql_fetch_assoc($rs)){
$list[]=$row;
}
return$list;
}
}*/
//取數據
publicfunctiongetAll($sql)
{
$rs=$this->query($sql);
if(!$rs){
returnfalse;
}else{
$list=array();
while($row=mysql_fetch_assoc($rs)){
$list[]=$row;
}
return$list;
}
}
//返回sql語句結果條數
publicfunctiongetNums($sql){
returnmysql_num_rows($this->query($sql));
}
//insert插入數據方法
publicfunctioninsert($sql)
{

}

//讀取錯誤方法
publicfunctiongetError()
{
return$this->error;
}
//記錄日誌方法
/*publicfunctionlog($err){
$time=date('Y-m-dH:i:s',time());
if(file_exists("./log.txt")){
$contents=file_get_contents("./log.txt");
$contents.="$time ".$err." ";
file_put_contents('./log.txt',$contents);
}else{
$filename='./log.txt';
$str='';
writefile($filename,$str);
$contents=file_get_contents("./log.txt");
$contents.="$time ".$err." ";
file_put_contents('./log.txt',$contents);
}

}*/
}

❻ 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;
}