Есть так много ответов для PHP и MySQL, но вот код для PHP и Oracle для предотвращения SQL-инъекций, а также регулярное использование драйверов oci8:
$conn = oci_connect($username, $password, $connection_string);
$stmt = oci_parse($conn, 'UPDATE table SET field = :xx WHERE ID = 123');
oci_bind_by_name($stmt, ':xx', $fieldval);
oci_execute($stmt);
Я отправляю портативное решение в форме ответа, таким образом, она может быть принята. В основном я заменил cout
streambuf
тем, который реализован с помощью c файловый ввод-вывод, который действительно заканчивает тем, что был перенаправлен. Благодаря всем для Вашего входа.
class outbuf : public std::streambuf {
public:
outbuf() {
setp(0, 0);
}
virtual int_type overflow(int_type c = traits_type::eof()) {
return fputc(c, stdout) == EOF ? traits_type::eof() : c;
}
};
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) {
// create the console
if(AllocConsole()) {
freopen("CONOUT$", "w", stdout);
SetConsoleTitle("Debug Console");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED);
}
// set std::cout to use my custom streambuf
outbuf ob;
std::streambuf *sb = std::cout.rdbuf(&ob);
// do some work here
// make sure to restore the original so we don't get a crash on close!
std::cout.rdbuf(sb);
return 0;
}
Если консоль для отладки только, можно просто использовать OutputDebugStringA
/ OutputDebugStringW
функции. Их вывод направил к Окну вывода в VS, если Вы находитесь в режиме отладки, иначе можно использовать DebugView для наблюдения его.
Библиотека iOS имеет функцию, которая позволяет Вам повторно синхронизировать C++ IO к тому, что использует стандарт C IO: iOS:: sync_with_stdio ().
здесь существует хорошее объяснение: http://dslweb.nwnexus.com/~ast/dload/guicon.htm .
Из того, что я могу сказать, Ваш код должен работать с VC 2005, если это - Ваше первое действие с консолью.
После проверки нескольких возможностей, Вы могли бы пытаться записать что-то перед выделением консоли. Запись в станд.:: суд или станд.:: wcout в той точке перестанет работать, и необходимо очистить флаги ошибки прежде, чем сделать далее вывод.
Raymond Martineau делает правильное замечание об этом являющийся 'первой вещью, которую Вы делаете'.
у меня была проблема перенаправления, из которой я забываю детали теперь, где оказалось, что очень рано в выполнении приложения, время выполнения принимает некоторые решения относительно выходных направлений, которые тогда длятся остальную часть приложения.
После следования за этим через источник CRT, я смог ниспровергать этот механизм путем очистки переменной в CRT, который заставил его бросить другой взгляд на вещи, как только я сделал свой AllocConsole.
, Очевидно, этот вид материала не будет портативным, возможно даже через версии набора инструментальных средств, но это могло бы выручить Вас.
После Вашего AllocConsole, ступите полностью вниз в следующий вывод суда и узнайте, куда это идет и почему.
Я не уверен, что понимаю проблему полностью, но если Вы хотите быть в состоянии просто выложить данные к консоли для диагностической цели.. почему не делают Вы испытываете Систему:: Диагностика:: Процесс:: Выполнить () метод или некоторый метод в том пространстве имен??
Извинения заранее, если это было не важно