我有一个现有的记录集,该记录集从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'表中没有相应的数据.....

提前致谢!
京东

最佳答案

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,因为这确实是解决这类问题的唯一方法。

关于php - 在新的mysql查询中嵌入现有的php记录集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7850535/

10-12 05:31