为了账号安全,请及时绑定邮箱和手机立即绑定

通过php添加选择数据

通过php添加选择数据

PHP
萧十郎 2023-04-15 16:38:09
<select class="form-control" name="city">              <option value="0">Filter by City</option>              <?php              try {                  $pdo = new PDO(DBCONNSTRING,DBUSER,DBPASS);                  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);                $sql = "select geocities.AsciiName from geocities INNER JOIN travelimagedetails ON geocities.GeoNameID = travelimagedetails.CityCode group by geocities.GeoNameID";                 $result = $pdo->query($sql);                while ($row = $result->fetch()) {                    echo '<option value="'.$row['AsciiName'].'>';                    echo $row['AsciiName'].'</option>';                   }                  $pdo = null;              }               catch (PDOException $e) {                   die( $e->getMessage() );              }              ?>           </select>          </div>输出当我删除第一个 PHP 标签时一切正常但是当我添加它时一切都失败了
查看完整描述

1 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

你应该尝试频繁使用PHP标签,它会解决你难以清晰阅读代码的问题


<select class="form-control" name="city">

              <option value="0">Filter by City</option>

              <?php

              try {

                  $pdo = new PDO(DBCONNSTRING,DBUSER,DBPASS);

                  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

                $sql = "select geocities.AsciiName from geocities INNER JOIN travelimagedetails ON geocities.GeoNameID = travelimagedetails.CityCode group by geocities.GeoNameID";

                 $result = $pdo->query($sql);

                while ($row = $result->fetch()) { 

               ?>


                    <option value="<?php echo $row['AsciiName']?>"> <?php echo $row['AsciiName']?> </option>;

                <?php

                   }

                  $pdo = null;

              }

               catch (PDOException $e) {

                   die( $e->getMessage() );

              }

              ?>

           </select>

您应该使用准备好的语句来防止 SQL 注入


准备好的声明


<select class="form-control" name="city">

              <option value="0">Filter by City</option>

              <?php

              try {

                  $pdo = new PDO(DBCONNSTRING,DBUSER,DBPASS);

                  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

                $sql = "select geocities.AsciiName from geocities INNER JOIN travelimagedetails ON geocities.GeoNameID = travelimagedetails.CityCode group by geocities.GeoNameID";

                // check if prepare statement worked well

                if (!$query = $pdo->prepare($sql)) {

                   // error message

                }  else{ // successful prepared statement

                    //checking if query executed well

                    if ($query->execute()) {

                        $result = $query->fetchAll();

                    }

                }

                // checking if $result is alive

                if (isset($result)) {

                   foreach ($result as $row) { ?>

                    <option value="<?php echo $row['AsciiName']?>"> <?php echo $row['AsciiName']?> </option>;

                <?php //$pdo = null;

              } // end foreach

            } // end check result if

        } // end Try

            catch (PDOException $e) {

                   die( $e->getMessage() );

              }

              ?>

           </select>


查看完整回答
反对 回复 2023-04-15
  • 1 回答
  • 0 关注
  • 74 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信