pdo mysql_PDO MySQL
PDO MySQL
如果文章有成千上萬篇,該怎樣保存?
數據保存有多種方式,比如單機文件、單機數據庫(SQLite)、網絡數據庫(MySQL、MariaDB)等等。根據項目來選擇,做Web一般采用MySQL,本書也以MySQL為例。
自學:1天。
假設這個在線閱讀項目叫做“reader”,需要一個“文章”表“articles”。建庫建表代碼如下:
CREATE DATABASE `reader` DEFAULT CHARACTER SET utf8;
USE `reader`;
CREATE TABLE `articles` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`author` varchar(20) DEFAULT NULL,
`title` varchar(50) DEFAULT NULL,
`content` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
然后修改add_article_submit.php,把文章保存到數據庫中即可。代碼如下:
$input = $_POST;
$dsn = 'mysql:host=127.0.0.1;port=3306;dbname=reader;charset=utf8';
$user = 'root';
$password = '1';
$db = new PDO($dsn, $user, $password); //連接數據庫
$sql = 'INSERT INTO `articles` (`author`, `title`, `content`) VALUES (' . '\'' . $input['author'] . '\',\'' . $input['title'] . '\',\'' . $input['content'] . '\');';
$stmt = $db->query($sql); //執行SQL
$id = $db->lastInsertId(); //獲得自增id
if (!empty($id)) {
$notice = '保存成功';
} else {
$notice = '出錯了';
}
$d = array();
$d['notice'] = array(
'msg' => '保存成功',
);
require_once __DIR__ . '/notice.html';
然后首頁index.php把這些文章查出來即可,代碼如下:
$dsn = 'mysql:host=127.0.0.1;port=3306;dbname=reader;charset=utf8';
$user = 'root';
$password = '1';
$db = new PDO($dsn, $user, $password);
$sql = 'SELECT `id`, `author`, `title`, `content` FROM `articles` LIMIT 10';
$stmt = $db->query($sql);
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$articles = $stmt->fetchAll();
$d = array();
$d['articles'] = $articles;
require_once __DIR__ . '/index.html';
然后單篇閱讀頁get_article.php,根據id,查出一篇即可,這樣比查出來所有文章合理多了。代碼如下:
$input = $_GET;
$d = array();
if (!isset($input['id']) || empty($input['id'])) {
$d['notice'] = array(
'msg' => '出錯了:缺少參數',
);
require __DIR__ . '/notice.html';
exit;
}
$dsn = 'mysql:host=127.0.0.1;port=3306;dbname=reader;charset=utf8';
$user = 'root';
$password = '1';
$db = new PDO($dsn, $user, $password);
$sql = 'SELECT `author`, `title`, `content` FROM `articles` WHERE id=' . $input['id'] . ' LIMIT 1';
$stmt = $db->query($sql);
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$r = $stmt->fetchAll();
if (empty($r)) {
$d['notice'] = array(
'msg' => '出錯了:查無此文',
);
require __DIR__ . '/notice.html';
exit;
}
$d = array();
$d['article'] = $r[0];
require_once __DIR__ . '/get_article.html';
現在可以發表、查看首頁、單篇閱讀,功能都實現了。
總結一下
我的技術水平
| 語義化 | 讓內容動起來 | 單機文件 | GET、POST | PC + Windows | 0.2 | |
| 表現與業務分離 | charset | Unicode | 0.3 | |||
| PDO | MySQL | 0.4 | 
已解決的問題
如何用PHP操作MySQL數據庫?
使用PDO即可。
PDO、php_mysqli和php_mysql的區別是什么?
請自學了解。注意:php_mysql已廢棄。
沒錢,對現在的年輕人意味著什么?
luckystar神探:來,講個故事。 從前有個騷年叫小明。不是姚小明,不是黃小明,也不是郭小明。就是一個普普通通的、扎人堆里找不出來的小明。 男,二十多歲,家境普通??陬^禪是「還不是因為老子窮」。 高中時,和… http://zhi.hu/1P8D(分享自知乎)
待解決的問題
index.php、get_article.php等多個文件里都連了數據庫,如果密碼變了,每個地方都要改,怎么辦?
且聽下回分解。
訪問index.php是正常網頁,但訪問index.html看到了什么?
請進行實驗。且聽下回分解。
單引號能保存嗎?會導致什么后果?
請按照截圖進行實驗。且聽下回分解。
單引號實驗保存1
單引號實驗保存2
總結
以上是生活随笔為你收集整理的pdo mysql_PDO MySQL的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 铁路12306app怎么看退票记录? 铁
- 下一篇: windows 文件授权解决跨平台权限问
