mysql unknown_where子句中的mysql unknown列

当我运行以下代码(由函数和do while循环组成)时,我得到以下mysql错误:'where子句'中的未知列'Tsi96fnl',其中Tsi96fnl是随机字符串.如果几乎尝试了一切,但我无法找到任何错误.也许这是因为我自己没有编写random_text函数,我不知道这个函数发生了什么(好吧,不是那么多).

function random_text($type, $length){

switch ( $type ) {

case 'alnum':

$pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

break;

case 'alpha':

$pool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';

break;

case 'hexdec':

$pool = '0123456789abcdef';

break;

case 'numeric':

$pool = '0123456789';

break;

case 'nozero':

$pool = '123456789';

break;

case 'distinct':

$pool = '2345679ACDEFHJKLMNPRSTUVWXYZ';

break;

default:

$pool = (string) $type;

break;

}

$crypto_rand_secure = function ( $min, $max ) {

$range = $max - $min;

if ( $range < 0 ) return $min; // not so random...

$log = log( $range, 2 );

$bytes = (int) ( $log / 8 ) + 1; // length in bytes

$bits = (int) $log + 1; // length in bits

$filter = (int) ( 1 << $bits ) - 1; // set all lower bits to 1

do {

$rnd = hexdec( bin2hex( openssl_random_pseudo_bytes( $bytes ) ) );

$rnd = $rnd & $filter; // discard irrelevant bits

} while ( $rnd >= $range );

return $min + $rnd;

};

$token = "";

$max = strlen( $pool );

for ( $i = 0; $i < $length; $i++ ) {

$token .= $pool[$crypto_rand_secure( 0, $max )];

}

return $token;

}

$check = false;

do {

$randomId = random_text('alnum', 8);

$randomId = str_replace('"', "", $randomId);

$randomId = str_replace("'", "", $randomId);

$SQL = "SELECT * FROM login WHERE id = $randomId";

$result = mysqli_query($db_handle, $SQL) or die(mysqli_error($db_handle));

$num_rows = mysqli_num_rows($result);

if($num_rows = 0){

$check = true;

}

} while ($check != true);

echo $randomId;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值