Привет У меня проблема при использовании PDO, я новичок в этом. Запрос возврата пустого массива, если я с помощью первого метода:PHP PDO query return null
try {
$r = "SELECT * FROM `order` WHERE `id` = :id AND `key` = :key LIMIT 1";
$r_do = $db->prepare($r);
$r_do->bindParam(':id', $id, PDO::PARAM_STR);
$r_do->bindParam(':key', $key, PDO::PARAM_STR);
$r_do->execute();
$f2 = $r_do->fetch();
} catch(PDOException $r) {
$log->logError($r." - ".basename(__FILE__));
}
где $ идентификатора целого и $ ключа является ecrypted строки, например iGkGNI1NEzCZ6k9g9xC + m8hNm22G3DXsNoEqdwNkTc0 =
значение поступает из URL
signin.php?id=10&key=iGkGNI1NEzCZ6k9g9xC+m8hNm22G3DXsNoEqdwNkTc0=
Если я непосредственно заменил подготовленный оператор его значением, запрос вернет результат.
$r = "SELECT * FROM `order` WHERE `id` = '10' AND `key` = 'iGkGNI1NEzCZ6k9g9xC+m8hNm22G3DXsNoEqdwNkTc0=' LIMIT 1";
Есть идеи? Для вашей информации я использую WebMatrix, как IDE с PHP на Windows 7 64-битной
Не могли бы вы 'var_dump ($ key)'? С '+' и '=' в тексте, он может быть преобразован для вас где-то на этом пути. – andrewsi
return string (44) "iGkGNI1NEzCZ6k9g9xC m8hNm22G3DXsNoEqdwNkTc0 =" Когда я использую die (var_export ($ db-> errorinfo(), TRUE)); он возвращает массив (0 => '00000', 1 => NULL, 2 => NULL,) –
Да, это редактируется - см. Это пространство посередине, где ваш '+' был? Вам нужно запустить код через 'urlencode()' на странице, где вы создаете ссылку; и 'urldecode()' на этой странице: http://php.net/manual/en/function.urlencode.php – andrewsi