Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ob_start()正在部分捕获数据_Php_Mysql_Database_Ob Start - Fatal编程技术网

Php ob_start()正在部分捕获数据

Php ob_start()正在部分捕获数据,php,mysql,database,ob-start,Php,Mysql,Database,Ob Start,我正在使用以下代码: PHP: 问题是: 当Iecho$theid时,它会显示完整的条目,但在将其插入数据库时,只会插入序列中的第一个条目,例如,对于条目buKPK,只会插入“b”,而不会插入其余条目 检查数据库中的字符长度(即,如果是varchar(10),确保在该字段中存储的字符不超过10个)检查数据库中的字符长度(即,如果是varchar(10),确保在该字段中存储的字符不超过10个)尝试使用ob_end_clean()而不是ob\u get\u clean()。对ob_start()的连

我正在使用以下代码:

PHP:

问题是:


当I
echo$theid
时,它会显示完整的条目,但在将其插入数据库时,只会插入序列中的第一个条目,例如,对于条目
buKPK
,只会插入“b”,而不会插入其余条目

检查数据库中的字符长度(即,如果是varchar(10),确保在该字段中存储的字符不超过10个)

检查数据库中的字符长度(即,如果是varchar(10),确保在该字段中存储的字符不超过10个)

尝试使用
ob_end_clean()
而不是
ob\u get\u clean()
。对ob_start()的连续调用创建“嵌套”缓冲上下文
ob\u get\u clean()
获取并清除当前上下文,但不终止它,因此对
ob\u start()
的第二次调用将创建第二个嵌套缓冲上下文。在这种情况下,您只需要捕获输出缓冲区,然后终止捕获上下文。

尝试使用
ob\u end\u clean()
而不是
ob\u get\u clean()
。对ob_start()的连续调用创建“嵌套”缓冲上下文
ob\u get\u clean()
获取并清除当前上下文,但不终止它,因此对
ob\u start()
的第二次调用将创建第二个嵌套缓冲上下文。在这种情况下,您只需要捕获输出缓冲区,然后终止捕获上下文。

运行此操作时,我得到了预期的结果。我对特定代码中ob_start解决方案的用途感到困惑。为什么你要回显结果而不是直接赋值?我只是假设他在简化代码以隔离问题。@mario,因为回显的内容将保存为数据库中的一个条目。有更好的主意吗?我是编程新手,所以我会使用从《傻瓜书》中学到的知识。用
$theid=base\u encode($Guid,$alphabet)替换ob\u开始部分
如果您需要为数据库打印它(??),您可以稍后再回显该变量。我运行此命令时得到了预期结果。我对特定代码中的ob_start解决方法的用途感到困惑。为什么你要回显结果而不是直接赋值?我只是假设他在简化代码以隔离问题。@mario,因为回显的内容将保存为数据库中的一个条目。有更好的主意吗?我是编程新手,所以我会使用从《傻瓜书》中学到的知识。用
$theid=base\u encode($Guid,$alphabet)替换ob\u开始部分如果您需要为数据库打印它(???),您可以稍后再回显变量。谢谢Chris。使用它实际上让我得到了第二个角色,但不是之后的任何东西。谢谢克里斯。使用它实际上让我得到了第二个字符,但不是之后的任何东西。好了,这就成功了,我使用int()而不是varchar。。。谢谢shankhan。好了,我用int()代替了varchar。。。谢谢你。
// Generate Guid 
function NewGuid() { 
    $s = strtoupper(uniqid(rand(),true)); 
    $guidText = 
        substr($s,0,8) . '-' . 
        substr($s,8,4) . '-' . 
        substr($s,12,4). '-' . 
        substr($s,16,4). '-' . 
        substr($s,20); 
    return $guidText;
}
// End Generate Guid 

$Guid = NewGuid();

$alphabet = '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ';    

function base_encode($num, $alphabet) {
    $base_count = strlen($alphabet);
    $encoded = '';

    while ($num >= $base_count) {

        $div = $num/$base_count;
        $mod = ($num-($base_count*intval($div)));
        $encoded = $alphabet[$mod] . $encoded;
        $num = intval($div);
    }

    if ($num) $encoded = $alphabet[$num] . $encoded;
        return $encoded;
}


function base_decode($num, $alphabet) {
    $decoded = 0;
    $multi = 1;

    while (strlen($num) > 0) {
        $digit = $num[strlen($num)-1];
        $decoded += $multi * strpos($alphabet, $digit);
        $multi = $multi * strlen($alphabet);
        $num = substr($num, 0, -1);
    }

    return $decoded;
}

// Ob start 
 ob_start();
 echo base_encode($Guid, $alphabet); //should output: bUKpk
 $theid = ob_get_contents();
 ob_get_clean();