本文整理汇总了C++中MySQLResult::isLocalized方法的典型用法代码示例。如果您正苦于以下问题:C++ MySQLResult::isLocalized方法的具体用法?C++ MySQLResult::isLocalized怎么用?C++ MySQLResult::isLocalized使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MySQLResult
的用法示例。
在下文中一共展示了MySQLResult::isLocalized方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: f_mysql_fetch_lengths
Variant f_mysql_fetch_lengths(CVarRef result) {
MySQLResult *res = php_mysql_extract_result(result);
if (res == NULL) return false;
if (res->isLocalized()) {
if (!res->isRowReady()) return false;
Array ret;
for (int i = 0; i < res->getFieldCount(); i++) {
MySQLFieldInfo *info = res->getFieldInfo(i);
if (info->type == MYSQL_TYPE_YEAR) {
// special case for years, because of leading zeros
ret.set(i, info->length);
} else {
// convert fields back to Strings to get lengths
ret.set(i, res->getField(i).toString().length());
}
}
return ret;
}
MYSQL_RES *mysql_result = res->get();
unsigned long *lengths = mysql_fetch_lengths(mysql_result);
if (!lengths) {
return false;
}
Array ret;
int num_fields = mysql_num_fields(mysql_result);
for (int i = 0; i < num_fields; i++) {
ret.set(i, (int)lengths[i]);
}
return ret;
}
示例2:
MySQLResult *php_mysql_extract_result(const Variant& result) {
MySQLResult *res = result.toResource().getTyped<MySQLResult>
(!RuntimeOption::ThrowBadTypeExceptions,
!RuntimeOption::ThrowBadTypeExceptions);
if (res == nullptr || (res->get() == nullptr && !res->isLocalized())) {
raise_warning("supplied argument is not a valid MySQL result resource");
return nullptr;
}
return res;
}
示例3: f_mysql_result
Variant f_mysql_result(CVarRef result, int row,
CVarRef field /* = null_variant */) {
MySQLResult *res = php_mysql_extract_result(result);
if (res == NULL) return false;
MYSQL_RES *mysql_result = NULL;
MYSQL_ROW sql_row = NULL;
unsigned long *sql_row_lengths = NULL;
if (res->isLocalized()) {
if (!res->seekRow(row)) return false;
if (!res->fetchRow()) return false;
} else {
mysql_result = res->get();
if (row < 0 || row >= (int)mysql_num_rows(mysql_result)) {
raise_warning("Unable to jump to row %d on MySQL result index %d",
row, result.toResource()->o_getId());
return false;
}
mysql_data_seek(mysql_result, row);
sql_row = mysql_fetch_row(mysql_result);
if (!sql_row) {
return false;
}
sql_row_lengths = mysql_fetch_lengths(mysql_result);
if (!sql_row_lengths) {
return false;
}
}
int field_offset = 0;
if (!field.isNull()) {
if (field.isString()) {
String sfield = field.toString();
const char *tmp = strchr(sfield.data(), '.');
String table_name, field_name;
if (tmp) {
int pos = tmp - sfield.data();
table_name = sfield.substr(0, pos);
field_name = sfield.substr(pos + 1);
} else {
field_name = sfield;
}
int i = 0;
bool found = false;
res->seekField(0);
while (i < res->getFieldCount()) {
MySQLFieldInfo *info = res->getFieldInfo(i);
if ((table_name.empty() || table_name.same(info->table)) &&
field_name.same(info->name)) {
field_offset = i;
found = true;
break;
}
i++;
}
if (!found) { /* no match found */
raise_warning("%s%s%s not found in MySQL result index %d",
table_name.data(), (table_name.empty() ? "" : "."),
field_name.data(), result.toResource()->o_getId());
return false;
}
} else {
field_offset = field.toInt32();
if (field_offset < 0 ||
field_offset >= (int)res->getFieldCount()) {
raise_warning("Bad column offset specified");
return false;
}
}
}
if (res->isLocalized()) {
Variant f = res->getField(field_offset);
if (!f.isNull()) {
return f.toString();
}
} else {
if (sql_row[field_offset]) {
return String(sql_row[field_offset], sql_row_lengths[field_offset],
CopyString);
}
}
return uninit_null();
}