Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将数组更新到sql数据库中_Php_Sql_Arrays - Fatal编程技术网

Php 将数组更新到sql数据库中

Php 将数组更新到sql数据库中,php,sql,arrays,Php,Sql,Arrays,我想用表单中的数据将数组更新到数据库中。以下是我的表格: $query = "SELECT category FROM `$tablename`"; $result2 = mysqli_query($link, $query); $rowcount = mysqli_num_rows($result2); if ($rowcount > 0) { ?> <div class="center_content"> <div i

我想用表单中的数据将数组更新到数据库中。以下是我的表格:

$query = "SELECT category FROM `$tablename`";
$result2 = mysqli_query($link, $query);


$rowcount = mysqli_num_rows($result2);
if ($rowcount > 0) {
    ?>

    <div class="center_content">  

        <div id="right_wrap">
            <div id="right_content">             


                <ul id="tabsmenu" class="tabsmenu">
                    <li class="active"><a href="#tab1">Update Category</a></li>
                    <li class=""><a href="#tab2">Add Category</a></li>
                    <li class=""><a href="#tab3">View All Category</a></li>

                </ul>
                <div id="tab1" class="tabcontent">
                    <div style="margin:0 auto" align=center>


                    </div>
                    <div class="form">
                        <form action="editCatB.php" method="post"> 


                            <div class="form_row">
                                <label>Outlet Name:</label>
                                <input type="text" class="form_input" name="tablename" value="<?php echo $name; ?>"readonly/>
                            </div>

                            <div class ="form_row">
                                <label>Outlet Category/Stalls :</label>
                            </div>
                            <div class="form_row">

                                <div class="input_fields_wrap">
                                    <?php
                                    mysqli_data_seek($result2, 0);

                                    while ($row2 = mysqli_fetch_array($result2, MYSQLI_ASSOC)) {
                                        ?>            

                                        <div><input class="form_input" type="text" name="mytext[]"value="<?php echo $row2['category']; ?>
                                                    "></div>
                                        <?php
                                        }
                                    }
                                    ?>
它还首先返回“字段列表”中的错误“未知列”abc

$sql = "UPDATE `$tableCat` SET category = `$cat`";
应该更像:

$sql = "UPDATE `$tableCat` SET category = '$cat'";
也就是说,您极易受到SQL注入的影响。研究准备好的陈述

如果要使用条件更新多行,请遵循以下类似模式:

$sql = "
    UPDATE `$tableCat` SET 
        category = '$cat', 
        foo = '$foo', 
        bar = '$bar' 
    WHERE baz = '$baz'
";
1) 反勾号用于表名和列名,而不是列值。您需要使用常规引号,或者利用mysqli的绑定,这是防止sql注入的建议

2) 更新时要使用
WHERE
子句。我建议在创建表时使用行的id值

<div><input class="form_input" type="text" name="mytext[<?php echo $row2['id']?>]" value="<?php echo $row2['category']; ?>"></div>

您确定这是完整的代码吗?因为我在您的任何查询中都没有看到任何abc列名。有关未知字段错误,请参阅
UPDATE
中的
WHERE
子句,告诉它要更新哪些行,而不是更新所有行。
<div><input class="form_input" type="text" name="mytext[<?php echo $row2['id']?>]" value="<?php echo $row2['category']; ?>"></div>
foreach($newString as $id=>$cat) {
    $sql = "UPDATE `$tableCat` SET category = '$cat' WHERE id = '$id'";

    $result = mysqli_query($link, $sql) or die(mysqli_error($link));
}