gpt4 book ai didi

php - 当值有单引号时,显示数据库中的不完整值,

转载 作者:行者123 更新时间:2023-11-29 12:47:20 24 4
gpt4 key购买 nike

当我从数据库中查询时,例如产品“男士香蕉”,它只显示“男士”,并删除了其余的文本。仅当我在文本区域内查询它时才会出现此问题,但是当我直接从数据库查询它时,它会显示完整的文本。

当使用文本区域表单类型时,即使使用单引号,它也会显示所有内容。然而,当在这种形式中显示它时,它会切断其余部分。

echo "<td><label for='prod_price'>Product Name:</label></td>
<td><input name='prod_name' id='prod_name' type='text' class='col1' value='$prodname'></td>
</tr>";

我应该做什么来解决这个问题。我想不出一个合适的问题来搜索谷歌。所以我在这里解释了。

这是我的其余代码,不需要的代码已被删除

<html>
<head>
<meta charset="utf-8" />
<title>Edit a Product</title>
<link rel="stylesheet" type="text/css" href="cms.css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.autocomplete.js"></script>
<script>
$(document).ready(function(){
$("#prod_brand").autocomplete("prod_brand_auto_complete.php", {
selectFirst: true
});
});
</script>
</head>
<body>
<style>
button {
margin: 10px;
padding: 10px;
}
a{
color: black;
text-decoration: none;
}

</style>


<?php
session_start();
$conn = @mysql_connect("localhost","root","12148qx3er");
$db = @mysql_select_db("buybranded");
$itemid = $_GET['id'];
$qry = "SELECT * FROM inventory where prod_id = ".$itemid;
mysql_set_charset("UTF8");
$result = @mysql_query($qry);
if($result === FALSE) {
die(mysql_error()); // TODO: better error handling
}


echo "<div id='page-wrap'>
<h1>Edit a Product</h1>";
while ($row=mysql_fetch_array($result)){

$prodbrand = $row['prod_brand'];
$prodname = $row['prod_name'];
$prodcategory = $row['prod_category'];
$prodprice = $row['prod_price'];
$prod_desc = $row['prod_desc'];
$prodpic = $row['prod_pic'];
$prodquantity = $row['prod_quantity'];

echo "<form enctype='multipart/form-data' method='post' action='updating_inv.php?id=$itemid'>";
echo "<table>
<tr>";
echo "<td><label for='prod_brand'>Product Brand:</label></td>
<td><input name='prod_brand' id='prod_brand' type='text' class='col1' placeholder='Auto Complete Form' value='$prodbrand'/></td>";

echo "<td><label for='prod_price'>Product Name:</label></td>
<td><input name='prod_name' id='prod_name' type='text' class='col1' value='$prodname'></td>
</tr>";
echo "<tr>";
echo "<td><label for='prod_price'>Product Price:</label></td>
<td><input name='prod_price' id='prod_price' type='text' class='col1' value='$prodprice'/></td>";
echo "<tr>";
echo "<td><label for='prod_desc'>Description:</label></td>
<td><textarea name='prod_desc' id='prod_desc' class='col2'>$prod_desc</textarea></td>";

echo "<td></td><td><table><tr>";

echo '<img src="data:image/jpeg;base64,' . base64_encode( $row['prod_pic'] ) . '" width="100" border="1px"/><br>';
echo "<td><label for='prod_pic'>Upload Image:</label><br><input type='file' name='prod_pic' class='col2' value=''/></td>";
echo "</tr>";
echo "<tr>";
echo "<td><label for='prod_quantity'>Quantity:</label><br><input name='prod_quantity' id='prod_quantity' type='text' class='col2' placeholder='ex. 10' value='$prodquantity'/></td>";
echo "</tr>";
echo "<tr>";
echo "<td><form method='post'><button>Update this Entry!</button>";
echo "<button><a href='inventory.php'>Go back</a></button></td>";
echo "</tr></table></td></table>";

echo "</form>";






}
echo "</div>";
?>

</div>

</body>
</html>

最佳答案

您应该考虑使用 PHP 的 PDO 类(准备好的语句)。 PDO 类自动处理查询的特殊字符:http://php.net/manual/it/book.pdo.php

您收到的错误可能正在发生,因为特殊字符弄乱了您的查询:

SELECT * FROM test WHERE a LIKE 'men's banana'

应该转义单引号,以使查询正常工作:

SELECT * FROM test WHERE a LIKE 'men\'s banana'

如前所述,PDO 正在为您做这件事。一旦您的网页上线(SQL 注入(inject)),这也是一个很大的安全问题。

当你打印你的回复时,问题也是一样的。为文本框赋予值会弄乱属性:

<input type='text' value='men's banana' />

只需使用普通引号即可:

<input type="text" value="men's banana" />

关于php - 当值有单引号时,显示数据库中的不完整值,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25269056/

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