2015-02-12 2 views
0

Я читаю о http://de.php.net/manual/en/pdostatement.execute.php, но запутался с разницей между $sth->bindParam(...) и $sth->execute($parameters)

На ретроспективе они выглядят одинаково. Также руководство никогда не является конкретным. Почему или когда использовать PDO::PARAM_INT и PDO::PARAM_STR?

Наконец, в моем коде не будет возвращаться FALSE, когда запрос «пуст».

$sql = 'SELECT `id` FROM `some WORKING sql Statement` WHERE `id` = :id'; 
$query = self::$dbc->prepare($sql); 
$SHT->bindParam(':uri', $id, PDO::PARAM_INT); 
$result = $SHT->execute(); //Row Count not working 
if($result) { 
    //TRUE 
    ...code 
} 
else { 
    //FALSE 
    ...code 
} 
+0

Возможный дубликат http://stackoverflow.com/questions/12392424/pdo-bindparam-vs-execute –

ответ

1

bindParam() связывается ссылкой. Это означает, что если вы сначала выполнили свой подготовленный оператор, а затем измените значение переменной и затем выполните его снова, запрос будет сохранен с новым значением.

execute() с аргументами: вы просто приводите аргументы, но больше ничего не происходит.

По умолчанию все заполнители обернуты кавычками. Если вам это нужно без кавычек, вы можете использовать PDO::PARAM_INT, чтобы явно указать PDO, что вы хотите, чтобы он был целым.

Возврат execute() является дескриптором инструкции. Если ваш запрос выполняется успешно, вы получите дескриптор инструкции. Используйте rowCount(), чтобы проверить, есть ли у вас какие-либо строки.

Смежные вопросы