【问题标题】:Insert into a database a single string value of a randomized array将随机数组的单个字符串值插入数据库
【发布时间】:2020-10-09 18:30:45
【问题描述】:

我有这个代码:

    $possible_pics = array(
        'red-pfp' => 'teem-pfp-red.svg',
        'pink-pfp' => 'teem-pfp-pink.svg',
        'blue-pfp' => 'teem-pfp-blue.svg',
        'green-pfp' => 'teem-pfp-green.svg',
        'purple-pfp' => 'teem-pfp-purple.svg',
        'yellow-pfp' => 'teem-pfp-yellow.svg',
        'orange-pfp' => 'teem-pfp-orange.svg',
    );
    shuffle($possible_pics);
    echo reset($possible_pics);

它的结果,我想这样插入到数据库中:

    $sentence = $connection->prepare("
        INSERT INTO users (id, user, pass, email, profile_pic) VALUES (:id, :user, :password, :email, :profile_pic)
    ");
    $sentence->execute(array(
        ':id' => $user_id,
        ':user' => $user,
        ':password' => $password,
        ':email' => $email,
        ':profile_pic' => $possible_pics
    ));

此时我已经连接到数据库,我只是在做 SQL 代码。 如您所见,我通过数组将值插入到数据库中,并且在:profile_pic 的部分中,我说我想插入我添加到问题中的第一个代码的结果,我正在改组数组,它只给我们带来 1 个值。这里的问题是,当我运行它时,它会显示:

Notice: Array to string conversion on line 73

为什么会发生这种情况,我该怎么做才能插入随机数组的值?在我这样做的地方,它工作得很好,它只有效地返回 1 个值。我不能写implode(),因为它标记了unexpected implode()

在简历中,如何将我在问题开头显示的随机数组的返回值插入数据库?

【问题讨论】:

  • 你试过':profile_pic' => reset($possible_pics)吗?

标签: php mysql sql database


【解决方案1】:

只需将reset 函数的输出选择到一个变量中,然后在您的insert 语句中使用它。

shuffle($possible_pics);
$shuffledPic = reset($possible_pics);

...
$sentence->execute(array(
        ':id' => $user_id,
        ':user' => $user,
        ':password' => $password,
        ':email' => $email,
        ':profile_pic' => $shuffledPic 
    ));

【讨论】:

    猜你喜欢
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 2016-02-07
    相关资源
    最近更新 更多