我有一个函数来显示来自数据库的一些结果,它看起来像:
public function getSolicData() {
$tempArray = $this->solicStringConvert();
foreach ($tempArray as $key => $solic){
$success = false;
try{
$con = new PDO( DB_HOST, DB_USER, DB_PASS );
$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sql = "SELECT * FROM solic_code WHERE manufacturer = :manufacturer_code AND main_type = :main_type AND option_code = :option_code";
$stmt_solic = $con->prepare( $sql );
$stmt_solic->bindValue( "manufacturer_code", "06", PDO::PARAM_STR );
$stmt_solic->bindValue( "main_type", "50", PDO::PARAM_STR );
$stmt_solic->bindValue( "option_code", $tempArray[$key], PDO::PARAM_STR );
$stmt_solic->execute();
$i= 0;
while ($row = $stmt_solic->fetch()){
$this->values[] = $row['description'];
}
}catch(PDOExeption $e){
echo $e->getMessage();
echo $con->errorInfo();
}
}
var_dump($this->values);
return $this->values;
}
在我看来,它看起来不错,应该返回多个结果,问题是它只是显示带有文本"Array"的空白行,但是如果我尝试在它之前写var_dump,它的结果是:
array(17) { [0]=> string(12) "2-DVÉŘOVÝ" [1]=> string(20) "STŘEŠNÍ OKNO MECH" [2]=> string(23) "TÓNOVANÁ SKLA ZELENÁ" [3]=> string(20) "VNĚ-ZRCÁTKA NASTAV" [4]=> string(22) "BEZ ČERVENÉ OZD-LIŠ" [5]=> string(20) "REGUL SKLONU SVĚTEL" [6]=> string(13) "POTAHY LÁTKA" [7]=> string(18) "SEDADLO L V-NASTAV" [8]=> string(22) "ČALOUN PŘÍSTR-DESKY" [9]=> string(14) "1,8 L 66KW RP" [10]=> string(17) "PŘEVOD 4+E-RYCHL" [11]=> string(14) "SERVOŘÍZENÍ" [12]=> string(17) "PNEU 185/55 VR 15" [13]=> string(18) "DISKY 6 J X 15 ALU" [14]=> string(12) "OD SRPNA
所以我完全不明白这一点。说真的我不知道如何调试它。有人可以帮助我吗?(我不能在我的情况下使用回声)
由于它是一个数组,因此您需要迭代每个项目以打印每个项目或对其进行某些操作。
执行此操作的一种方法是使用 foreach 循环。但是 for 循环或 while 循环可以工作。
foreach($this->values as $value) {
print $value;
}
或者,您可以使用索引访问特定值,例如 print $this->value[0]
会给你第一项。
您不能简单地打印阵列或按原样回显它。
您也可以使用 print_r
.这完全取决于你想做什么。
使用 foreach 循环或 for 循环并迭代以获取值
看起来你尝试回显 getSolicData()。您需要对数组的每个或显示行使用。喜欢:
$res = getSolicData();
echo $res[0];
// or
foreach($res as $row) {
echo $row . '<br>';
}