【发布时间】:2014-10-05 21:11:14
【问题描述】:
我在一个文件夹中上传了4张照片,照片的名称在mysql上。然后我“选择”文件的名称,并将它们放入数组 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];
我明白了:
rafiki.png rafiki2.png
rafiki3.pngrafiki4.png
这意味着数组上有换行符和空格...为什么会这样?
【问题讨论】:
-
我希望你能逃脱
$repId -
你的意思是转义到字符串? $repId 对我来说没有问题。它的工作正常。我应该转义到字符串 picArray 元素吗?
-
在输入查询之前转义变量通常是一种很好的做法,除非系统已经处理它。您无需转义即可将 picArray 元素串起来。
-
var_dump您的阵列,以便更快、更准确地进行调试。对于 $picArray 项目,使用trim -
使用
mysqli时,您应该使用参数化查询和bind_param将用户数据添加到您的查询中。 请勿使用字符串插值来完成此操作,因为您将创建严重的SQL injection bugs。