gpt4 book ai didi

php - 使用 PDO 类将 MySql 表数据选择到数组中?

转载 作者:可可西里 更新时间:2023-11-01 08:17:16 25 4
gpt4 key购买 nike

我在这里找到了一些信息,但可以评论以询问更多信息。所以我的问题是:我想从 mySQL 中选择我的数据。我有两张 table :客户(id、姓名、ak、numeris)prekes (id, customer_id, prek_name, prek_value)

两个表中的id都是自动递增的。

我尝试填充数组?

我只传递了一个值 (customers.id)。有 5 条记录具有相同的 prekes.customer_id。

$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = 'SELECT * FROM prekes WHERE customer_id=' . $pirkejas . ''; //$pirkejas = id passed via $_POST.
$q = $pdo->prepare($sql);
foreach ($pdo->query($sql) as $row) {
// if ($row['prek_pav'] != '') {
$prekes = array($row['prek_name'], $row['prek_value']);

Database::disconnect();

如何以正确的方式填充数组 $prekes?

编辑:

我想在我的表单中打印值:

<table class="table-bordered">
<tr>
<td><input class="input-medium" name="prekes[1][pavadinimas]" type="text" placeholder="Prekė" value=""></td>
<td><input class="input-medium" name="prekes[1][kaina]" type="text" placeholder="Kaina" value=""></td>
</tr>
<tr>
<td><input class="input-medium" name="prekes[2][pavadinimas]" type="text" placeholder="Prekė" value=""></td>
<td><input class="input-medium" name="prekes[2][kaina]" type="text" placeholder="Kaina" value=""></td>
</tr>
<tr>
<td><input class="input-medium" name="prekes[3][pavadinimas]" type="text" placeholder="Prekė" value=""></td>
<td><input class="input-medium" name="prekes[3][kaina]" type="text" placeholder="Kaina" value=""></td>
</tr>
<tr>
<td><input class="input-medium" name="prekes[4][pavadinimas]" type="text" placeholder="Prekė" value=""></td>

我的行为是:

$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO customers (name,pavarde,ak,data, numeris) values(?, ?, ?, ?,?)";
$q = $pdo->prepare($sql);
$q->execute(array($name, $pavarde, $ak, date("Y-m-d H:i:s", time()), $numeris));

$pirkejo_id = $pdo->lastInsertId();

foreach ($prekes as $preke) {
//prekiu uzpildymas
$sql = "INSERT INTO prekes (customer_id,prek_name,prek_value) values(?, ?, ?)";
$q = $pdo->prepare($sql);
$q->execute(array($pirkejo_id, $preke['pavadinimas'], $preke['kaina']));
}

Database::disconnect();
header("Location: default.php");

我不知道如何从数据库中获取所有值,

最佳答案

不要将值注入(inject)到您的 SQL 查询中。改用参数绑定(bind)。

$q = $pdo->prepare('SELECT id, prek_name, prek_value FROM prekes WHERE customer_id = ?');
$q->execute([$pirkejas]); // if PHP < 5.4, use array($pirkejas)
$prekes = $q->fetchAll(PDO::FETCH_ASSOC);

现在 $prekes 将是一个行数组,其中每一行都是一个关联数组。

<?php foreach ($prekes as $row) : ?>
<tr>
<td>
<input name="prekes[<?= (int) $row['id'] ?>][pavadinimas]"
value="<?= htmlspecialchars($row['prek_name']) ?>">
</td>
<td>
<input name="prekes[<?= (int) $row['id'] ?>][kaina]"
value="<?= htmlspecialchars($row['prek_value']) ?>">
</td>
</tr>
<?php endforeach ?>

关于php - 使用 PDO 类将 MySql 表数据选择到数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22238406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com