相关疑难解决方法(0)

PHP随机字符串生成器

我正在尝试在PHP中创建一个随机字符串,我绝对没有输出:

<?php
    function RandomString()
    {
        $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $randstring = '';
        for ($i = 0; $i < 10; $i++) {
            $randstring = $characters[rand(0, strlen($characters))];
        }
        return $randstring;
    }

    RandomString();
    echo $randstring;
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

php string random

772
推荐指数
27
解决办法
117万
查看次数

mysqli 在 PHP 7.4 中是否支持 caching_sha2_password?

当我尝试从 PHP 7.3 升级到 PHP 7.4 时,收到此错误:

执行 caching_sha2 auth 109 时出现意外的服务器响应

在我看来,这表明 PHP 7.4 MySQLi 正在尝试使用该caching_sha2_password插件。这篇文章指出 PHP MySQLi 不支持该插件(它也暗示未来会支持它),但由于 PHP 7.4 是新的并且似乎正在尝试使用它,我想它应该可以工作。此外,错误消息与不受支持的情况不同(访问被拒绝身份验证方法未知)。

所以我将我的 MySQL 身份验证插件更改为caching_sha2_password(使用与以前相同的密码):

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '';
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)

但这导致了另一个错误:

用户 'root'@'localhost' 的访问被拒绝(使用密码:YES)。

切换回 PHP 7.3 并mysql_native_password再次运行。

我对两个插件、同一个网站使用了相同的密码,并应用了相同的 php.ini 更改。但是,我没有更改任何mysqli配置。MySQL 的日志什么也没显示,apache2 日志只显示“拒绝访问”错误消息。

php7.4-mysqli 支持caching_sha2_password吗?是的

为什么我的密码被拒绝,我该如何解决? 查看我的后续问题

另外,如果 MySQLi 仍然不支持该插件:我如何使用mysql_native_password它?

php mysql authentication mysqli php-7.4

8
推荐指数
1
解决办法
3211
查看次数

标签 统计

php ×2

authentication ×1

mysql ×1

mysqli ×1

php-7.4 ×1

random ×1

string ×1