Параметр, являющийся логическим, является $res
. mysql_query
возвращает FALSE
при ошибке:
Для SELECT, SHOW, DESCRIBE, EXPLAIN и других операторов, возвращающих набор результатов,
blockquote>mysql_query()
возвращает ресурс с успехом илиFALSE
при ошибке.из http://php.net/manual/en/function.mysql-query.php .
Таким образом, проблема что ваш запрос SQL недействителен, возможно, потому что
partners_program
не существует или потому, что одно из полей не существует.Хорошим началом в отладке проблемы является удаление
@
спереди изmysql_query
. @ Подавляет все ошибки и, как правило, неодобрительно. Если ваши настройки PHP правильно настроены для отладки, вы должны затем получить описательное сообщение об ошибке. Вы также можете для целей отладки использоватьmysql_error()
сразу послеmysql_query
для более подробной информации.Кроме того, функции
mysql_*
устарели долгое время, поэтому, если это возможно, вы должны проверьте библиотекиpdo
илиmysqli
.
Почему бы не реализовать собственную замену?
void myReplace(std::string& str,
const std::string& oldStr,
const std::string& newStr)
{
std::string::size_type pos = 0u;
while((pos = str.find(oldStr, pos)) != std::string::npos){
str.replace(pos, oldStr.length(), newStr);
pos += newStr.length();
}
}
Самый простой способ (предложить что-то близкое к тому, что вы написали) - использовать Boost.Regex , в частности regex_replace .
std :: string имеет встроенные методы find () и replace (), но работать с ними более громоздко, поскольку они требуют работы с индексами и длинами строк.
Я считаю, что это сработает. Он принимает в качестве параметра const char *.
//params find and replace cannot be NULL
void FindAndReplace( std::string& source, const char* find, const char* replace )
{
//ASSERT(find != NULL);
//ASSERT(replace != NULL);
size_t findLen = strlen(find);
size_t replaceLen = strlen(replace);
size_t pos = 0;
//search for the next occurrence of find within source
while ((pos = source.find(find, pos)) != std::string::npos)
{
//replace the found string with the replacement
source.replace( pos, findLen, replace );
//the next line keeps you from searching your replace string,
//so your could replace "hello" with "hello world"
//and not have it blow chunks.
pos += replaceLen;
}
}