获取数据库中的变量ID

时间:2013-05-13 22:03:40

标签: php mysql

我想获取数据库中项目的id,将其设置为变量,然后使用它。我对所有这些编码都很陌生。我是基于这个。

http://jameshamilton.eu/content/simple-php-shopping-cart-tutorial?PHPSESSID=99d373741727e3010a32319f1ebed001

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 ...让我困惑一些

3 个答案:

答案 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”之类的内容中引用引号?这是为了安全吗? 请原谅我,我是一名新的平面设计师,不擅长代码。