我有一个现有的记录集,该记录集从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/