我想写一个小搜索引擎,但我无法解决我的问题。 我试图找到任何解决方案,但我找不到根本原因。
错误:可捕获的致命错误:类mysql_result的对象未转换为字符串(在第31行)
include ("../connect.php");
$brand = $_POST["brand"];
$gyartmany = $_POST["gyartmany"];
$csalad = $_POST["csalad"];
$cikktipus = $_POST["tipus"];
//$cikkszamok = $_POST["cikkszamok"];
$doktipus = $_POST["doktipus"];
$ervenyessegkezdete = $_POST["ervenyessegkezdete"];
$ervenyessegvege = $_POST["ervenyessegvege"];
$dokazonosito = $_POST["dokazonosito"];
$fajlnev = $_POST["fajlnev"];
//$archiv = $_POST["archiv"];
$valasz= array();
if (isset($brand))
{
$vissza = $kapcsolat->query("SELECT * FROM dokumentumok WHERE brand = '$brand'");
if (isset($gyartmany)) {
$vissza .= "AND gyartmany LIKE '$gyartmany'"; //Line 31
}
if (isset($csalad)) {
$vissza .= "AND csalad LIKE '$csalad'";
}
if (isset($cikktipus)) {
$vissza .= "AND cikktipus LIKE '$cikktipus'";
}
if (isset($cikkszamok)) {
$vissza .= "AND erintett_cksz LIKE '$cikkszamok'";
}
if (isset($ervenyessegkezdete)) {
$vissza .= "AND letrehozas >='$ervenyessegkezdete'";
}
if (isset($ervenyessegvege)) {
$vissza .= "AND ervenyesseg <= '$ervenyessegvege'";
}
if (isset($dokazonosito)) {
$vissza .= "AND dokazonosito LIKE '$dokazonosito'";
}
if (isset($fajlnev)) {
$vissza .= "AND fajlnev LIKE '$fajlnev'";
}
}
if (mysqli_num_rows($vissza)>0)
{
while($sor = mysqli_fetch_assoc($vissza))
{
array_push($valasz, $sor);
}
} else {
$valasz["uzenet"]=("sometext!");
}
print json_encode ($valasz);
我认为这一行的主要问题是:$ vissza = $ kapcsolat-&gt; query(“SELECT * FROM dokumentumok WHERE brand = '$品牌'“);
答案 0 :(得分:1)
$ vissza的类型为mysql_result,因为这行:
$ vissza = $ kapcsolat-&gt;查询(&#34; SELECT * FROM dokumentumok WHERE brand = &#39; $品牌&#39;&#34);
但你尝试使用它,好像它是一个字符串,如:
$ vissza。=&#34; AND gyartmany LIKE&#39; $ gyartmany&#39;&#34;;
这不会奏效。一旦将查询发送到mysql,它就会消失了#34;。之后你无法编辑它。您必须在使用map.entrySet()
.stream()
.map(entry -> new Test(entry.getKey().getKey(),
entry.getKey().getValue(),
entry.getValue()))
.collect(Collectors.toList());
发送查询之前构建查询。
此外: 请看一下PDO。另外,您的代码引入了sql注入。你可能想读一下这个。
这是一个示例存根,所以你可以得到这个想法:
->query()