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>
- 1 回答
- 0 关注
- 108 浏览
添加回答
举报