-1

さて、私は今別の問題を抱えています。これにより、シリアルが mysql データベースに入れられるはずですが、代わりにシリアルの最初の文字だけが入れられます。文字列全体を書き込む方法は?

    $str = '';
    for($i = 0; $i < 20; $i++)
    {
        if($letter_OR_number = rand(0,1))
        { // true: alphabet chosen
            $str[] = chr(rand(65, 90));
        }
        else
        { // false: number chosen
            $str[] = rand(0,9);
        }
        if($i % 4 == 3)
        {
            ($i < 19)? $str[] = '-': $str[] = ' ';
        }
    }
        $Query = "INSERT INTO `Donates` (`serial`, `Coins`) VALUES ('%s', '500')";
        mysql_query(vsprintf($Query, $str),$link) or die(mysql_error());
    foreach($str as $val){
        echo $val;
    }


    mysql_close($link);
    ?>
4

3 に答える 3

0

最終的には文字列だけが必要なのに、なぜ2つの配列を作成するのですか。このようなことを試してください -

$str = ''; // create a string, not an array
for($i = 0; $i < 20; $i++)
{
    if($letter_OR_number = rand(0,1))
    { // true: alphabet chosen
        $str .= chr(rand(65, 90));
    }
    else
    { // false: number chosen
        $str .= rand(0,9);
    }
    if($i % 4 == 3)
    {
        ($i < 19)? $str .= '-': $str .= ' ';
    }
}

$Query = "INSERT INTO `Donates` SET `serial` = '%s', `Coins` = '500'";
mysql_query(vsprintf($Query, $str),$Verbinding);


まだ使用したい場合は編集$str[]してから、前に内破する必要があります。

$str = ''; 
for($i = 0; $i < 20; $i++) { 
    if($letter_OR_number = rand(0,1)) { // true: alphabet chosen 
        $str[] = chr(rand(65, 90)); } 
    else { // false: number chosen 
        $str[] = rand(0,9); } 
    if($i % 4 == 3) { 
        ($i < 19)? $str[] = '-': $str[] = ' '; } 
} 
foreach($str as $val){ 
      echo $val; } 

$str = implode("",$str); // Implode to make your array a string    

$Query = "INSERT INTO Donates (serial, Coins) VALUES ('%s', '500')";
mysql_query(vsprintf($Query, $str),$link) or die(mysql_error()); mysql_close($link); ?> 
于 2013-06-30T08:16:38.743 に答える