Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.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
来自mysql的PHP echo十六进制_Php_Mysql_Hex_Uuid - Fatal编程技术网

来自mysql的PHP echo十六进制

来自mysql的PHP echo十六进制,php,mysql,hex,uuid,Php,Mysql,Hex,Uuid,在PHP中,我想将UUID打印为mysql数据库中的文本 $con = mysql_connect("localhost","user","pass"); if (!$con) { die('Could not connect: ' . mysql_error()); } $db_selected = mysql_select_db('advancedban', $con); $query="SELECT * FROM bm_name_bans";

在PHP中,我想将UUID打印为mysql数据库中的文本

$con = mysql_connect("localhost","user","pass");
if (!$con) {
    die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db('advancedban', $con);

$query="SELECT * FROM bm_name_bans";                    
$results = mysql_query($query);
while ($row = mysql_fetch_array($results)) {
    echo $row['actor_id'];
}
Row actor_是二进制(16)类型,我将在网站上获得
*?|?O2a?GCtq??i

你能帮我得到输出吗?你需要把二进制字符串转换成十六进制字符串。您可以组合使用
dechex
ord
PHP函数,如下所示:

$row['actor_id'] = '*?|?O2a?GCtq??I';

for ($i = 0; $i < strlen($row['actor_id']); $i++) {
    $currentChar = $row['actor_id'][$i]; // you can access string characters like it is an array
    echo dechex(ord($currentChar));
}
$row['actor_id']='*?|?O2a?GCtq??I';
对于($i=0;$i

请注意,
strlen
是二进制安全的,可以在这里使用。

$row
的循环在哪里?while($row=mysql\u fetch\u array($results)){echo$row['actor\u id'];}应该是编码问题,你有utf-8编码的元标记吗?警告:如果你只是在学习PHP,请不要学习过时的接口。这很糟糕,已经在PHP7中删除了。替换类和指南类有助于解释最佳实践。确保您的用户参数正确无误,否则最终会导致严重后果。最好将UUID值存储为纯文本,通常为十六进制格式,如
bd6033c3-faad-44dd-9fc9-8723b2cad47c
,因为这样您就可以对它们进行索引,在查询中使用它们而不必大惊小怪,并且可以一目了然地了解内部情况。使用二进制值带来的好处非常少。