2017-08-04 102 views
-1

我不明白为什么当我尝试从数据库中选择一个字符串时,它会引发错误并截断字符串。我正在使用的代码是:Mysql字符串被截断选择

<?php define('something_made_for_security', true); include('mysql.php'); 
if(!sqlConnect()) die(); 

echo $_COOKIE['key']; 
$currSession = Query('SELECT * FROM {sessioni} WHERE uid = 1 AND key = {0}', $_COOKIE['key']); //Queries the datatabase 

if(NumRows($currSession)) { //Get number of rows 
    $cuser = Fetch(Query('SELECT * FROM {utenti} WHERE nome = '.$_COOKIE['uid'])); 
    print_r($cuser); 
} 

此输出为:http://prntscr.com/g4bkgs。看起来问题不是php特定的,因为它在PhpMyAdmin中也是这样。

那么为什么字符串被截断。字段“键”是SHA512哈希的char(128)。

编辑:我忘了“钥匙”是一个关键字,我通常不会封锁字符串。

+5

'key'是一个MySQL __reserved__字 –

+0

这说明了一切。我在创建数据库时没有注意到它。现在我改变了字段名称,它工作。谢谢 – MoonlightCapital

回答

0

试试这个

$currSession = Query('SELECT * FROM {sessioni} WHERE uid = 1 AND `key` = {0}', $_COOKIE['key']); //Queries the datatabase