2015-12-06 3 views
0

Я ничего не знаю о MySQL, не говоря уже о PDO, и я изо всех сил пытаюсь преобразовать что-то в PDO.Как преобразовать простой бит MySQL в pdo

Я испробовал все, что мог, копируя код из других битов скрипта, но не могу заставить ничего работать и ничего не знаю о MySQL, не говоря уже о PDO, на самом деле не помогает MySQL кажется чертовски намного проще мягко говоря.

Я хочу, чтобы этот очень простой бит MySQL работал как PDO.

$query = " UPDATE " . $DBPrefix . "settings SET 
logo = '" . $_FILES['logo']['name'] . "' "; 
$system->check_mysql(mysql_query($query), $query, __LINE__, __FILE__); 
$system->SETTINGS['logo'] = $_FILES['logo']['name']; 

ответ

-1

Вы должны положить. после дб префикса:

$query = " UPDATE " . $DBPrefix . ".settings SET 
logo = '" . $_FILES['logo']['name'] . "' "; 
$system->check_mysql(mysql_query($query), $query, __LINE__, __FILE__); 
$system->SETTINGS['logo'] = $_FILES['logo']['name']; 
+0

жаль, что я не понимаю, что вы имеете в виду я пытаюсь преобразовать этот код в PDO – user3604052

+0

вы не добавить точку после префикса дб , ". $ DBPrefix." .settings, чтобы быть database.settings –

+0

Он уже работает, поскольку он безупречен как MySql, я хочу, чтобы он был PDO, а не MySql – user3604052

0

Сначала вам нужно создать new PDO() объект. Что-то вроде этого:

$dsn = "mysql:host=$host;dbname=$db;charset=$charset"; 
$opt = [ 
    PDO::ATTR_ERRMODE   => PDO::ERRMODE_EXCEPTION, 
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC 
]; 
$pdo = new PDO($dsn, $user, $pass, $opt); 

Следующая ваш код будет трансформироваться в:

$sql = "UPDATE {$DBPrefix}settings SET logo = '{$_FILES['logo']['name']}'"; 
$result = $pdo->query($sql); 

Но это не очень хорошая практика, чтобы просто написать SQL вручную, обертывание и избежать всех Params. Лучший способ, используя подготовленные заявления, это будет обернуть и избежать всех Params автоматически:

$ps = $pdo->prepare("UPDATE {$DBPrefix}settings SET logo = :logo"); 
$ps->execute(['logo' => $_FILES['logo']['name']]); 
Смежные вопросы