PHP和mysqli更新准备声明

问题描述 投票:0回答:1

我一直在尝试使用FOR循环中的准备好的语句来更新行。

经过数小时的谷歌搜索和阅读其他人的问题,我仍然无法使它正常工作。

我有一个菜单,用户可以选择一个产品并显示该类别中的所有项目。

然后按百分比更新类别中所有项目的价格。

我的代码

<?php
// query using product name
$query = "SELECT * FROM Steel_Table WHERE Name='$name' ORDER BY id DESC";
$result = $conn->query($query);

if (!$result) echo "Select Failed: $query<br>" . $conn->error . "<br><br>";

$rows = $result->num_rows;

for ($j = 0 ; $j < $rows ; ++$j)
{
    $result->data_seek($j);
    $row = $result->fetch_array(MYSQLI_NUM);

    $id_1 = (int) $row[0];  // ID

    $price_meter = (float) $row[4]; // Price Meter

    // prepare statement
    $stmt = "UPDATE Steel_Table SET PriceMeter=? WHERE id=?";

    if($stmt = mysqli_prepare($conn, $stmt))
    {
    // bind Params
    mysqli_stmt_bind_param($stmt, "di", $new_price_meter, $id);

    // set params
    $new_price_meter = $price_meter + ($price_meter * 5.0 / 100.0);
    $id = $id_1;

    // execute statement
    mysqli_stmt_execute($stmt);
    }
    echo <<<_END
        <p align="center">You Have Updated&nbsp;$row[1]</p>
        <table align="center" border="1" class="frameTread">
        <tr>
        <td>
        <table align="center" border="1" class="special2">
        <tr>
        <td align="center" class="insert">
        <b>ID:&nbsp;</b>$row[0] <br /><br /> 
        <b>Name:&nbsp;</b>$row[1] <br /><br />
        <b>Size:&nbsp;</b>$row[2] <br /><br />
        <b>Length:&nbsp;</b>$row[3] <br /><br />
        <b>Current Price Per Meter:&nbsp;$</b>$row[4] <br /><br />                                 
        <b>Current Price Per Length:&nbsp;$</b>$row[5] <br /><br />
        <b>Cutting Charge:&nbsp;$</b>$row[6] <br /><br />
        <br />
        </td>
        </tr>
        </table>
        <br />
        </td>
        </tr>
        </table>
        <br />
    _END;    
}

mysqli_stmt_close($stmt);
$result->close();
$conn->close();

function get_post($conn, $var)
{
return $conn->real_escape_string($_POST[$var]);
}
?>

非常感谢您提供任何帮助。

DRGRNR

php mysqli prepared-statement
1个回答
0
投票

您似乎在绑定变量后声明了它们。

© www.soinside.com 2019 - 2024. All rights reserved.