我有一个现有的记录集,它从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
答案 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,因为这确实是此类事情的唯一前进方式。