当前位置:首页 » 编程语言 » 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;
}