我是PHP新手 - >第一次開發人員。我正在處理我的Web應用程序,並且幾乎完成了;不過,我的大部分sql都是通過使用直接mysql請求的代碼直接完成的。這是我接近它的方式:使用PHP和MySQL - 需要一個好的和安全的OO設計
在classes_db.php我聲明瞭db設置並創建了用於打開和關閉數據庫連接的方法。我宣佈我的普通頁面的那些對象:
class classes_db {
public $dbserver = 'server;
public $dbusername = 'user';
public $dbpassword = 'pass';
public $dbname = 'db';
function openDb() {
$dbhandle = mysql_connect($this->dbserver, $this->dbusername, $this->dbpassword);
if (!$dbhandle) {
die('Could not connect: ' . mysql_error());
}
$selected = mysql_select_db($this->dbname, $dbhandle)
or die("Could not select the database");
return $dbhandle;
}
function closeDb($con) {
mysql_close($con);
}
}
在我的正常的網頁,我這樣做:
<?php
require 'classes_db.php';
session_start();
//create instance of the DB class
$db = new classes_db();
//get dbhandle
$dbhandle = $db->openDb();
//process query
$result = mysql_query("update user set username = '" . $usernameFromForm . "' where iduser= " . $_SESSION['user']->iduser);
//close the connection
if (isset($dbhandle)) {
$db->closeDb($dbhandle);
}
?>
我的問題是:如何做是正確的,並使其OO和安全性?我知道我需要合併準備好的查詢 - >如何以最好的方式做到這一點?請提供一些代碼
使用停止'mysql_ *'和使用PDO與準備好的查詢。就目前而言,您可能會對SQL注入攻擊敞開大門。 – Brad
我知道,這是我的問題的目的 - >請提供一些改進它的最佳方法。謝謝 – Andrew
這應該在http://codereview.stackexchange.com – goat