サイトのセキュリティを強化するために、古いsqlite3データベースコードをsqlite3プリペアドステートメントに変換しようとしています。私はmysqlに切り替えることを検討していましたが、今のところ私はこれを最初に動作させたいと思います。SQLite3プリペアドステートメント重複した結果を選択
ここで間違っていたことはわかりませんが、結果はすべて2倍になります。ここで
は私のコードは次のとおりです。
$sql = $upc->prepare("SELECT `uid`, `model`, `biosmodel`, `upc`, `systemsku`, `brand`, `hardwareids`, `status`, `pendingHardware` FROM `builds` WHERE `uid`=:id");
$sql->bindValue(':id', $uid, SQLITE3_INTEGER);
$result = $sql->execute();
echo "<pre>".print_r($result->fetchArray(),true)."</pre>";
私の結果は、私のすべてのキーを持つ配列であるが、そうのようなだけの重複情報との定期的な配列のキー0-8
ように見えるにも重複エントリー、:
Array
(
[0] => 7
[uid] => 7
[1] => HP 15-AY041WM
[model] => HP 15-AY041WM
[2] => HP Notebook
[biosmodel] => HP Notebook
[3] => 889899757697
[upc] => 889899757697
[4] => X0H86UA#ABA
[systemsku] => X0H86UA#ABA
[5] => HP
[brand] => HP
[6] => [42,43,36,44,5,6,45,38,46,41,41,33]
[hardwareids] => [42,43,36,44,5,6,45,38,46,41,41,33]
[7] => 0
[status] => 0
[8] =>
[pendingHardware] =>
)
なぜこのようなことが起こっているのか分かりませんが、明らかにこの重複した情報はすべて不必要なものであるとは思われません。この問題を解決するにはどうすればよいですか?
だろう
SQLITE3_ASSOC
を渡します'。 –
'$ result-> fetchArray()'は配列を保持していませんか?アレイを印刷するにはどうしたらいいですか? – GrumpyCrouton
あなたは 'while'または' foreach'ループを使うことができます。重複行がある場合は、DISTINCTまたはGROUP BYを使用する必要があります。 –