php代码:
<?php
$name = $_GET['name'];
$type = $_GET['type'];
$desc = $_GET['desc'];
$con=mysqli_connect("localhost","root","","projdb");
// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$res = mysqli_query($con,"SELECT * FROM __scannedfiles WHERE description LIKE '%$desc%' AND title='$name' AND doctype='$type' ");
while($row = mysqli_fetch_array($res)){
$path=$row[3];
echo '<a target=\"_blank\" href="'.$path.'" title=\"\">'.$path.'</a> ';
}
?>
错误:
警告:mysqli_error()只需要1个参数,给定0。 这是错误。
答案 0 :(得分:0)
这意味着您的查询失败(由于语法错误或连接错误)。你应该在传递之前验证它是否经历过,例如:
if($res) {
print "good job!";
}else {
print "error";
}
答案 1 :(得分:0)
这表示您的查询出错,请使用mysqli_error()
查看查询中的错误
$res = mysqli_query($con,"SELECT * FROM __scannedfiles WHERE description LIKE '%$desc%' AND title='$name' AND doctype='$type' ")
OR die(mysqli_error());
答案 2 :(得分:0)
在将$res
传递给mysqli_fetch_array
之前检查if($res === FALSE) {
die(mysql_error()); // TODO: better error handling
}
while($row = mysqli_fetch_array($res)){
$path=$row[3];
echo '<a target=\"_blank\" href="'.$path.'" title=\"\">'.$path.'</a> ';
}
。您会发现它是错误的,因为查询失败了。
{{1}}
答案 3 :(得分:0)
它告诉您查询有问题。查询后执行此操作:
echo mysqli_error($con);
它会告诉您错误的位置。
答案 4 :(得分:0)
这意味着您的查询没有返回任何内容,或者有任何不适用的内容。首先调试查询
$res = mysqli_query($con,"SELECT * FROM __scannedfiles WHERE description LIKE '%$desc%' AND title='$name' AND doctype='$type' ") or die('Invalid query: ' . mysqli_error());
第二次检查行是否存在
if (mysqli_num_rows($res) > 0) {
while($row = mysqli_fetch_array($res)){
如果您有sql injection
的风险,请查看How can I prevent SQL injection in PHP?。您应该使用预备声明来避免任何风险