在新的mysql查询中嵌入现有的php记录集

时间:2011-10-21 14:04:54

标签: php mysql

我有一个现有的记录集,它从mysql中名为$ rrows的表中检索所有信息。我希望做的是在新的mysql查询中使用这个现有的记录集。

例如,我有以下一行从一个表中检索“产品代码”:

<?php echo $rrows['productcode']; ?>

然后我尝试使用此产品代码从新表中收集相应的图像,类似于:

<img src="<?php

mysql_select_db("dbname", $con);
mysql_set_charset('utf8');

$result = mysql_query("SELECT * FROM furnimages WHERE productcode='$rrows['productcode']'");

while($row = mysql_fetch_array($result))
{
    echo '' . $row['photo'] . '';   
}
mysql_close($con);
?>">

可以这样做吗?最初我一起去LINK桌子获取所有信息,但这不起作用,因为主要的一些产品代码在'furnimages'表中没有相应的数据......

提前致谢! JD

1 个答案:

答案 0 :(得分:1)

sprintf()是你最好的朋友。

$sql = <<<sql
SELECT * FROM furnimages 
WHERE productcode=%d
sql;

$result = mysql_query(sprintf($sql, $rrows['productcode']));

因此,%d是字符串中的占位符,用于调用sprintf()的第二个参数;

%d表示整数占位符;如果$ rrows ['productcode']是一个字符串,请使用%s。

这比简单引用变量的值更好,因为它添加了一个类型约束,可以降低恶意sql注入的风险。

它也使它更具可读性。

查看PHP Data Objects extension,因为这确实是此类事情的唯一前进方式。