[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Prepared statement
Serhiy
Как использовать, создавать Prepared statement?
например у меня есть код:

$query = Database::query("SELECT `mail` FROM `userdata` WHERE `username`='$log_d' AND `password`='$p_md5'");
$base = $query->fetch_object();

if ($mail_d == $base->mail && !empty($_POST['login']) && !empty($_POST['password']) && !empty($_POST['mail']))
{...}

Как это сделать через Prepared statement? :huh:
Игорь_Vasinsky
http://php.net/manual/en/mysqli.prepare.php

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
chee
Serhiy

Для PDO

$stmt = $pdo->prepare("SELECT * FROM pages WHERE id = :id");
$stmt->bindParam(':id', 1234);
$stmt->execute();

$stmt->fetch(\PDO::FETCH_ASSOC);


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Serhiy
Цитата (chee @ 28.01.2014 - 23:36)
Serhiy

Для PDO

$stmt = $pdo->prepare("SELECT * FROM pages WHERE id = :id");
$stmt->bindParam(':id', 1234);
$stmt->execute();

$stmt->fetch(\PDO::FETCH_ASSOC);

Не работает так...
читал инструкции и мануалы... но никак не могу разобраться... :huh:


Notice: Undefined variable: pdo
Fatal error: Call to a member function prepare()
twin
Дык нужно экземплярчик то сделать было:

$pdo = new PDO("mysql:host=". $host .";dbname=". $dbname, $user, $pass);


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Serhiy
Не получается у меня разобраться....
Расскажу подробней что и как...
Есть класс Database, в нем Singleton pattern подключения к Mysql:

require_once 'Db_log.php';

class Database //Klass fцr koppling till databas
{
private static $instance;
private $MySQLi;

private function __construct(array $dbOptions) // Konstruktцr av klass
{
// Koppling till MySQL server
$this->MySQLi = @ new mysqli($dbOptions['db_host'],
$dbOptions['db_user'],
$dbOptions['db_pass'],
$dbOptions['db_name']
);


if(mysqli_connect_errno())// Undantag om ska vara problem under koppling till databas
{
throw new Exception('Problem med koppling till Databas');
}

$this->MySQLi->set_charset("utf8"); // Typ av kodning
}

public static function getInstance(array $dbOptions) // Metod fцr ofarlig koppling
{
if(self::$instance instanceof self)
{
return false;
}

self::$instance = new self($dbOptions);
}

public static function getMySQLiObject()
{
return self::$instance->MySQLi;
}


public static function query($q) // Frеga till databas
{
return self::$instance->MySQLi->query($q);
}

public static function esc($str) // Skydd mot SQL Injection
{
return self::$instance->MySQLi->real_escape_string(htmlspecialchars($str));
}
}


Database::getInstance($dbOptions); // Koppling


Другой класс выполняет операции с Mysql


class User
{

public function readUser()
{
.........

$query = Database::query("SELECT `mail` FROM `userdata` WHERE `username`='$log_d' AND `password`='$p_md5'");
$base = $query->fetch_object();


Как из этого всего, чтобы был singleton pattern сделать чтобы было с prepared statement?
Если можете подскажите, но не кидайте ссылки... начитался но так и не разобрался... :huh:
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.