我想获取数据库中项目的id,将其设置为变量,然后使用它。我对所有这些编码都很陌生。我是基于这个。
cart.php?action=add&pdin=fbs
$product = $_GET[pdin];
我不能对'pdin'使用整数,所以,id喜欢使用它对应的id是一个整数并将其插入到只需要整数的代码行中吗?
$sql = sprintf("SELECT * FROM products WHERE pdin = %d;", $product);
所以我会把$ product ='pdin'找到它的id $ id ='id'并将其插入上面的代码
$sql = sprintf("SELECT * FROM products WHERE id = %d;", $id);
我试着阅读这个SQL FROM SELECT WHERE ...让我困惑一些
答案 0 :(得分:0)
我会使用一个准备好的语句,这也会使自己从SQL注入更安全一些。你从php到mysql使用什么数据库接口?
这是一个选项:
$product = $_GET['pdin'];
$stmt = $db->Prepare("select * from products where pdin = ?");
$res = $db->GetAssoc($stmt,$product);
答案 1 :(得分:0)
顺便说一句,
如果您通过键访问数组项,请始终使用引号('
或"
)否则PHP(不必要)首先检查,如果键是常量
答案 2 :(得分:0)
好的,我明白了。对不起,我昨晚没有解释清楚。我每天脑电池有限,昨晚它已经耗尽。
我想要的很简单。我想在数据库中找到与id相关联的项目。
$query = "SELECT * FROM products WHERE pdin = '$product'";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
$productID = $row['id'];
}
现在已完成部件并返回正确的ID。并且'item exists'功能正确触发。
//function to check if a product exists
function productExists($productID) {
//use sprintf to make sure that $productID is inserted into the query as a number - to prevent SQL injection
$sql = sprintf("SELECT * FROM products WHERE id = %d;", $productID);
return mysql_num_rows(mysql_query($sql)) > 0;
}
所以,Mark和Michal Hatak;当你在谈论使用键上的引用时,这是否意味着......
$sql = sprintf("SELECT * FROM products WHERE 'id' = %d;", $productID);
在“id”之类的内容中引用引号?这是为了安全吗? 请原谅我,我是一名新的平面设计师,不擅长代码。