php+mysql pdo基本操作解决办法

内容摘要
这篇文章主要为大家详细介绍了php+mysql pdo基本操作简单示例,具有一定的参考价值,可以用来参考一下。

对php mysql pdo基本操作简单示例对此感兴趣的朋友,看看idc笔记做的技
文章正文

这篇文章主要为大家详细介绍了php+mysql pdo基本操作简单示例,具有一定的参考价值,可以用来参考一下。

对php mysql pdo基本操作简单示例对此感兴趣的朋友,看看idc笔记做的技术笔记!

/**
 * 
 * @param 
 * @arrange (www.idcnote.com)
 **/

function db() {
    global $app;
    static $db; //1个请求内多个函数共用1个连接.
    if ($db) {
        return $db;
    } else {
        $db = @new mysqli(
            $app['db_host'], 
            $app['db_user'], 
            $app['db_pass'], 
            $app['db_name'], 
            $app['db_port']
        );
    }
    if ($db->connect_errno) {
        echo $db->connect_error;
        exit();
    }
    $db->set_charset('utf8');
    return $db;
}
 
function insert($title = '', $content = '') {
    global $app;
    $db = db();
    $stmt = $db->prepare('INSERT INTO posts (post_title, post_content) VALUES(?, ?)');
    $stmt->bind_param('ss', $title, $content);
    $stmt->execute();
    return ($stmt->affected_rows !== 0) ? 
        array(true,  'insert_id' => $stmt->insert_id) : 
        array(false, 'insert_id' => $stmt->insert_id);
}
 
function select($id = '') {
    global $app;
    $db = db();
    if (!empty($id)) {
        return $db->query('SELECT * FROM posts WHERE id = '.intval($id))->fetch_all(MYSQLI_ASSOC);
    } else {
        return $db->query('SELECT * FROM posts')->fetch_all(MYSQLI_ASSOC);
    }
}
 
function select_v2($id = '') {
    global $app;
    $db = db();
    if (!empty($id)) {
        $stmt = $db->prepare('SELECT * FROM posts WHERE id = ?');
        $stmt->bind_param('i', $id);
    } else {
        $stmt = $db->prepare('SELECT * FROM posts');
    }
    $stmt->execute();
    //get_result和fetch_all需要mysqlnd支持,PHP从5.4开始内置mysqlnd.
    return $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
}
 
function update($id, $title = '', $content = '') {
    global $app;
    $db = db();
    $db->autocommit(false);
    //$db->begin_transaction(); //PHP从5.5开始才有这个函数,之前版本用autocommit即可.
    $stmt = $db->prepare('UPDATE posts SET post_title = ?, post_content = ? WHERE id = ?');
    $stmt->bind_param('ssi', $title, $content, $id);
    $stmt->execute();
    $db->commit();
    //UPDATE时,如果更新的内容跟原来的内容一样,affected_rows也会返回0.
    return ($stmt->affected_rows !== 0) ? true : false;
}
 
function delete($id) {
    global $app;
    $db = db();
    $db->query('DELETE FROM posts WHERE id = '.intval($id));
    return ($db->affected_rows !== 0) ? true : false;
}
 
function delete_v2($id) {
    global $app;
    $db = db();
    $stmt = $db->prepare('DELETE FROM posts WHERE id = ?');
    $stmt->bind_param('i', $id);
    $stmt->execute();
    return ($stmt->affected_rows !== 0) ? true : false;
}
 
header('Content-Type: text/plain; charset=utf-8');
 
$app = array(
    'db_host' => '127.0.0.1',
    'db_user' => 'root',
    'db_pass' => 'xxxx',
    'db_name' => 'test',
    'db_port' => 3306
);
 
$table = "CREATE TABLE IF NOT EXISTS posts (
    id           int(10) unsigned NOT NULL AUTO_INCREMENT,
    post_title   varchar(255)     NOT NULL DEFAULT '',
    post_content text             NOT NULL DEFAULT '',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;";
 
//db()->query('DROP TABLE IF EXISTS posts;') or exit();
db()->query($table) or exit();
 
echo "var_export(insert('标题1', '内容1'));\n";
var_export(insert('标题1', '内容1'));
echo "\n\n";
 
echo "var_export(insert('标题2', '内容2'));\n";
var_export(insert('标题2', '内容2'));
echo "\n\n";
 
echo "var_export(select());\n";
var_export(select());
echo "\n\n";
 
echo "var_export(update(2, '标题2_更新','内容2_更新'));\n";
var_export(update(2, '标题2_更新','内容2_更新'));
echo "\n\n";
 
echo "var_export(select(2));\n";
var_export(select(2));
echo "\n\n";
 
echo "var_export(delete(2));\n";
var_export(delete(2));
echo "\n\n";
 
echo "var_export(select());\n";
var_export(select());
echo "\n\n";

注:关于php+mysql pdo基本操作简单示例的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!