2013-02-27 3 views
3

, поэтому я пытаюсь изучить f3, и синтаксис базы данных ускользает от меня.без жира каркас sql sanitization

глядя на docs кажется, что вы передаете строку вашего sql и массив значений для замены. но я не могу заставить его работать. Я попытался использовать один параметр, используя массивы, не используя массивы и т. д. и т. д., в конце концов мне нужно будет заменить 5+ переменных в запросе, поэтому мне действительно нужно понять, как это работает. чем раньше.

$db = new DB\SQL(
    $f3->get('db'), 
    $f3->get('dbuser'), 
    $f3->get('dbpass') 
); 
$x = $db->exec(
    "SELECT user_id, email, token FROM `user_primary` WHERE `first_name` = ':first' AND `last_name` = ':last';", 
    array(
     ':first' => $f3->get('PARAMS.first'), 
     ':last' => $f3->get('PARAMS.last') 
    ) 
); 
echo '<pre>'.print_r($x, true).'</pre>'; 

ответ

4

ошибка, которую я делал с кавычками.

select * from table where name = ':name'

не является правильным. Вы должны удалить кавычки

select * from table where name = :name

так что если вы хотите использовать несколько только гнездо массива их

$db->exec(
    `select * from table where first_name = :fname and last_name = :lname`, 
    array(
     ':fname' => 'xero', 
     ':lname' => 'harrison' 
    ) 
); 

может быть, это поможет кому-то еще.