美好的一天,我正在尝试将数组“$ list”转换为字符串或对象。我使用了以下方法:
<?php
include "medclass.php";
session_start();
if (isset($_SESSION['mail']))
{
$list = $_SESSION['basket'];
}
else
header("location: clientsigninpage.php?msg= Log-in First");
$obj = new med_class;
$obj->connectdb();
$val = implode(";",$list); //implode method
$val = (object) $list; //object method
$val = serialize($list); //serialize method
$result = $obj->searchMed($val);
while ($row = $result->fetchObject())
{
echo $row->MedPrice;
}
?>
使用“(object)”它给出了以下错误:“类stdClass的对象无法转换为字符串”,带有“implode”:“Array to string conversion”和“serialize()”它不打印任何东西。
我传递的值是:
function searchMed($v1)
{
$sql = "select * from storepreview where MedName = '$v1'";
$ret = $this->con->query($sql);
return $ret;
}
我通过以下链接使用了这些方法:(http://www.dyn-web.com/php/arrays/convert.php); (Convert an array to a string); (How to convert an array to object in PHP?)
答案 0 :(得分:0)
答案 1 :(得分:0)
我设法将你的&#34;数组重现为字符串转换&#34;通过运行以下代码行使用implode(";", [[]]); // PHP Notice: Array to string conversion in php shell code on line 1
命令时出错:
foreach
为了将嵌套数组转换为字符串,我发现$nestedArray = ['outerKeyOne' => ['innerKeyOne' => 'valueOne'], 'outerKeyTwo' => ['innerKeyTwo' => 'valueTwo']];
$arrayOfStrings = [];
foreach ($nestedArray as $key => $value) {
$arrayOfStrings[] = implode(",", $value);
}
implode(";", $arrayOfStrings); // string(17) "valueOne;valueTwo"
循环有效:
$val = (object) $list;
与行$sql
关联的第二个错误是尝试将对象嵌入__toString()
字符串。看起来这里的对象不是你想要的,除非它是一个实现了var_dump
方法的对象。
我希望这有一些帮助。使用String queryStr = "insert into table1 (field1, field2) values(?, ?);"
try {
PreparedStatement preparedStatement = conn.prepareStatement(queryStr);
preparedStatement.setString(1, "aa@gmail.com");
preparedStatement.setString(2, "f2 value");
preparedStatement.executeUpdate();
} catch (SQLException e) {
// Error
} finally {
if (preparedStatement != null) {
preparedStatement.close();
}
if (conn != null) {
conn.close();
}
}
或类似的东西会提供更多的调试输出,以便更好地诊断问题以及上述错误消息。这就是我如何提出上述代码的。