我上传了4张照片到一个文件夹中,并将这些照片的名称存储在mysql中。然后,我使用"SELECT"命令选择文件的名称,并将它们放入数组picArray中,如下所示。但是当我尝试输出内容时,虽然我得到了正确的名称,但似乎它们不能用作目录路径。
以下是代码:
$con=mysqli_connect("localhost","root","mypass","fixit");
$con->set_charset("utf8");
$repId=$repId+1;
$qr = mysqli_query($con,"SELECT * FROM photos WHERE report='$repId'");
$picArray = Array();
while( $row = mysqli_fetch_array($qr) ) {
$picArray[] = $row['name'];
}
?>
<div>
<img id="img1" src="uploads/<?php echo $repId ?>/<?php echo $picArray[0] ?>" />
<img id="img2" src="uploads/<?php echo $repId ?>/<?php echo $picArray[1] ?>" />
</div>
<div>
<img id="img3" src="uploads/<?php echo $repId ?>/<?php echo $picArray[2] ?>" />
<img id="img4" src="uploads/<?php echo $repId ?>/<?php echo $picArray[3] ?>" />
</div>
我需要提醒的是,当我执行以下操作时:
echo $picArray[0];
echo $picArray[1];
echo $picArray[2];
echo $picArray[3];
i get:
rafiki.png rafiki2.png
rafiki3.pngrafiki4.png
这意味着数组上有换行符和空格...为什么会发生这种情况?
$repId
。 - bearvar_dump
函数来快速、准确地调试数组。对于$picArray中的元素,使用trim
函数。 - Unamata Sanataraimysqli
时,应该使用参数化查询和bind_param
将用户数据添加到查询中。不要使用字符串插值来实现此操作,因为这会导致严重的 SQL 注入漏洞。 - tadman