السلام عليكم
كيف احصل على قيمة عنصر معين من الداتابيز
مثلا في حالتي اريد الحصول على قيمة admin_adminlte_theme_skin و account_activate_email
عليك بدراسة PHP PDO حتى تستطيع جلب البيانات من قاعدة البيانات بال PHP.
من هنا ستجد دورة في غاية البساطة تشرح لك ذلك من الصفر:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$tablename = "myTable";
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->connect_error and die("Connection failed: " . $conn->connect_error);
$sql = "SELECT name,value FROM $tablename
WHERE name='account_activate_email'
OR name='admin_adminlte_theme_skin'
LIMIT 2";
$result = $conn->query($sql);
$output = [];
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$output[$row['name']] = $row['value'];
}
}
$conn->close();
echo 'account_activate_email = ' . $output['account_activate_email'] . '<br>';
echo 'admin_adminlte_theme_skin = ' . $output['admin_adminlte_theme_skin'] . '<br>';
?>
يمكنك إانشاء Class بسيط لادارة العمليات مع قاعدة البيانات :
<?php
class DB
{
private static $_instance = null;
private $_results = [];
private $_errors = [];
protected function __construct(array $connectionData)
{
try
{
$this->_pdo = new \PDO("mysql:host=" . $connectionData['host_name'] . ";dbname=" .
$connectionData['db_name'], $connectionData['db_user'], $connectionData['db_password']);
$this->_pdo->exec("set names " . 'utf8');
$this->_pdo->setAttribute( \PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION );
} catch(\PDOException $e) {
die($e->getMessage());
}
}
public static function connect(array $connectionData)
{
if(!isset(self::$_instance)) {
self::$_instance = new DB($connectionData);
}
return self::$_instance;
}
public function query(string $sql, array $params = [])
{
$query = $this->_pdo->prepare($sql);
if(count($params)) {
$x = 1;
foreach($params as $param) {
// append values to sql statement
$query->bindValue($x, $param);
$x++;
}
}
if($query->execute()) {
$this->_sql = $query;
try
{
$this->_results = $query->fetchAll(PDO::FETCH_OBJ);
}
catch(\PDOException $e){
$this->_errors = [
'status' => false,
'message' => $e->getMessage()
];
}
} else {
$this->_errors = [
'status' => false,
'message' => 'Unable to execute query'
];
}
return $this;
}
public function hasError()
{
return count($this->_errors) ? true : false;
}
public function getError()
{
return $this->_errors['message'];
}
public function results()
{
return $this->_results;
}
}
طريقة الاستخدام :
$db = DB::connect([
'host_name' => '127.0.0.1',
'db_name' => 'database_name',
'db_user' => 'database_user',
'db_password' => 'database_user_password',
]);
$data = $db->query("SELECT `name`, `value` FROM `table_name` WHERE `id` in (54, 171) LIMIT 2");
if($data->hasError()) {
die($data->getError());
}
var_dump($data->results());
كما يمكنك الاستعانة بهذه المكتبة من برمجتي
التعليقات