中易网

请问哪位会写php连接mysql数据库的代码。

答案:2  悬赏:80  
解决时间 2021-03-12 05:44
请问哪位有php连接mysql数据库的代码。要有php的代码和mysql创建库,表,插入数据等。尽量详细点。不要把百度的直接复制过来,百度的我很多试了都有问题,最好自己写和测试过的。谢谢。
最佳答案
include 'mysql.php';
$server="localhost";
$user="用户名";
$psw="密码";
$database="数据库";
$db = new Mysql();
$db->connect($server, $user, $psw, $database);
unset($server, $user, $psw, $database);

mysql.php是个数据库连接类,内容如下:
<?php

class Mysql{

var $qryNum = 0;
var $qryInfo = '';
var $qryTime = 0.0;
var $debug = false;
var $connId;
var $tblPrefix = '';
var $tblFields = array();
var $lastQuery ;
var $openedQueries;//没有释放的查询
var $transaction;

function Mysql() {
$this->debug = 0;
defined('UNBUFFERED') or define('UNBUFFERED',1);
}

function connect($host, $user, $pass, $name) {
$this->connId = @mysql_connect($host, $user, $pass) OR $this->halt("Cann't connect to server");
$this->selectDb( $name );
return;
}

function selectDb($name) {
return @mysql_select_db($name, $this->connId) OR $this->halt();
}

function insert($table, $data) {
$fields = $this->getFields($table);
$values = $columns = array();
foreach ($fields as $field) {
$column = $field['Field'];
if ( $field['Extra'] == 'auto_increment' ) {
$values[] = 'null';
} else if ( array_key_exists($column, $data) ) {
$values[] = "'" . $data[$column] . "'";
} else {
$values[] = "'" . $field['Default'] . "'";
}
$columns[] = $column;
}

$sql = "INSERT INTO $table(" . implode(',', $columns) .') VALUES('. implode(',', $values) .')';

return $this->query($sql, UNBUFFERED);
}
function update($table, $data, $conds) {
$updates = array();
$fields = $this->getFields($table);

foreach ($fields as $field) {
$column = $field['Field'];
if (isset($data[$column])) {
$updates[] = "$column='" . $data[$column] . "'";
}
}

$sql = "UPDATE $table SET ". implode(',', $updates) ." WHERe $conds";
return $this->query($sql, UNBUFFERED);
}

function delete($table, $conds) {
return $this->query("DELETE FROM $table WHERe $conds", UNBUFFERED);
}

function select($table, $columns = '*', $conds = 1) {
return $this->query("SELECT $columns FROM $table WHERe $conds");
}

function getFields($table) {
if (array_key_exists($table, $this->tblFields)) {
return $this->tblFields[$table];
}
$this->query("DESC $table");
return $this->tblFields[$table] = $this->fetchAll();
}

function fetchAll($qryId = 0) {

$rtn = array();
$qryId || $qryId = $this->lastQuery;
while ($row = $this->fetchAssoc($qryId)) {
$rtn[] = $row;
}
return $rtn;
}

function fetchOne($sql) {
$rst = $this->query($sql);
return mysql_fetch_array($rst, MYSQL_ASSOC);
}

function fetchRow($qryId = 0) {
$qryId || $qryId = $this->lastQuery;
return mysql_fetch_row($qryId);
}

function fetchAssoc($qryId = 0) {
$qryId || $qryId = $this->lastQuery;
return mysql_fetch_array($qryId, MYSQL_ASSOC);
}

function fetchArray($qryId = 0) {
$qryId || $qryId = $this->lastQuery;
return mysql_fetch_array($qryId, MYSQL_ASSOC);
}

function fetchObject($qryId = 0) {
$qryId || $qryId = $this->lastQuery;
return @mysql_fetch_object($qryId);
}

function result($rst, $row, $column = 0) {
return @mysql_result($rst, $row, $column);
}

function query($sql, $unbuffered = 0) {

if ( $this->debug ) {
$mtime = explode(' ', microtime());
$stime = $mtime[1] + $mtime[0];
}

$this->lastQuery = @mysql_query($sql, $this->connId);
//$unbuffered ? @mysql_unbuffered_query($sql, $this->connId) :

$this->lastQuery || $this->halt($sql);

if ($this->debug){
$mtime = explode(' ', microtime());
$etime = $mtime[1] + $mtime[0] - $stime;
$this->qryInfo .= sprintf("<li><b>%1.5f</b> %s<hr size=1 noshadow>\r\n", $etime, $sql);
$this->qryTime += $etime;
}

$this->qryNum++;
if (strpos($sql, 'SELECT') !== false && $this->lastQuery) {
$this->openedQueries[(int) $this->lastQuery] = $this->lastQuery;
}

return $this->lastQuery;
}

function dataSeek($rst, $row) {
// $qryId || $qryId = $this->lastQuery;
mysql_data_seek($rst, $row);
}

function debugOn() {$this->debug = true;}
function debugOff() {$this->debug = false;}
function getQueryNum() {return $this->qryNum;}

function affectedRows() {
return @mysql_affected_rows();
}

function numRows($qryId = 0) {
$qryId || $qryId = $this->lastQuery;
return @mysql_num_rows($qryId);
}

function insertId() {
return @mysql_insert_id();
}

function freeResult($qryId) {

$qryId || $qryId = $this->lastQuery;
if (isset($this->openedQueries[(int) $qryId])) {
unset($this->openedQueries[(int) $qryId]);
return @mysql_free_result($qryId);
}
return false;
}

function close() {

if (!$this->connId) {
return false;
}

if ($this->transaction) {
$this->transaction('commit');
}

if ($this->openedQueries){
foreach ($this->openedQueries as $key => $qryId){
$this->freeresult($qryId);
}
}

mysql_close($this->connId);
}

function halt() {
$str = sprintf("<li>MYSQL错误代码:%s</li>\r\n", mysql_errno());
$str.= sprintf("<li>MYSQL错误原因:%s</li>\r\n", mysql_error());
if (func_num_args()) {
$sql = func_get_args();
$str.= sprintf("<li>SQL    :%s</li>\r\n", $sql[0]);
}
die($str);
}

function debug() {
$str = sprintf("<li>共执行(%s)次查询</li>\r\n", $this->qryNum);
$str.= $this->qryInfo;
$str.= sprintf("<li>总用时:<b>[%1.5f]</b></li>\r\n", $this->qryTime);
return $str;
}
}

自己可以研究一下,这个mysql类很实用的,我一直在用

插入的时候可以这样写:
$insert["name"] = "aaaaaa";//name就是你的数据库中的字段名
$insert["age"] = "20";
$db->insert("user",$insert);
全部回答
create database if not exists myboard; drop table if exists myboard.mess; drop table if exists myboard.reMess; create table if not exists myboard.mess( messId integer not null auto_increment, userName varchar(20) not null, userEmail varchar(30), userQQ integer(11), userHP varchar(50), Mess text, ifReturn enum('T','F') not null default 'F', messDate timestamp not null default current_timestamp, Primary key(`messId`) )Engine = Innodb,default charset = gbk; 以上个创建一个数据库和一个表的mysql 下的sql脚本。 按楼上的连接好数据库后,把上面的每一句(从上一个分号到下一个分号)都使用mysql_query()函数执行一下,就完成了php 在mysql中创建数据库的操作。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
广州到湛江的汽车和火车分别是多少钱?谢谢了
东宇银海SOHO这个地址在什么地方,我要处理点
吃了一个月的麒麟丸比上个月还要少,几乎没得,
被罩是纯棉的每次洗后都会有好多毛怎么办
浏河那里有小型货车送货
去年qq炫舞上:“爱就爱了,爱了,爱你的全部
我是男的,为什么我的臀部缀肉多?
振堂中医医院地址在哪,我要去那里办事
John from Class 2 is runing past Helen.改
沉睡者神殿怎么开门
江西资溪有没有工作找
奶块退出之后怎么登录原来的账号
昨天晚上梦见前女友回到我身边了,会怎么样?
静海·杨成庄北洋工业区地址在哪,我要去那里
从双碑到工人村怎么坐公交车,最快需要多久
推荐资讯
移动宽带只用一个月可以吗?
作为萌萌新,就是搞不懂CDR是什么意思
我姓王妻子姓邵2009年1月结婚2010年9月24日生
瑞丰电脑在哪里啊,我有事要去这个地方
为什么说钟繇是“楷书之祖”?
怎样能把装载机的铲放平
口头作文 以我的学习生活为题,向大家介绍一下
成绩超过60分是不是就是合格吗
DNF独立的攻击高有什么用
在亲戚开的公司上班心情真是极度不爽!
户口迁入常州农村,现在村民一致不同意我是本
炫舞时代冒险转职奶妈转的什么技能
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?