可能重复:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
PHP (MySQL) error : “Warning: mysql_num_rows() expects parameter 1 to be resource”
我使用以下代码将文件上传到数据库中。我正在检查文件是否已存在。但是,当我检查时,我正在收到警告。
以下是我的代码。
$filename = $_FILES["uploaded_file"]["name"];
$location = "D:\\TrainingMaterials/";
$path = $location . basename( $_FILES['uploaded_file']['name']);
$data = $mysqli->real_escape_string(file_get_contents($_FILES ['uploaded_file']['tmp_name']));
move_uploaded_file( $_FILES["uploaded_file"]["tmp_name"], $location . $_FILES['uploaded_file']['name']);
$q = "select Material_Name,Material_Data from training_material where Material_Name = '$filename' and Material_Data ='$data'";
$rs = $mysqli->multi_query($q);
if (mysql_num_rows($rs) == 0)
{
$result = $mysqli->multi_query("call sp_upload_file('".$id."','" . $filename . "','".$path."','".$data."')");
if ($result)
{
do {
if ($temp_resource = $mysqli->use_result())
{
while ($row = $temp_resource->fetch_array(MYSQLI_ASSOC)) {
array_push($rows, $row);
}
$temp_resource->free_result();
}
} while ($mysqli->next_result());
}
echo "Successfully Uploaded";
}
else
{
echo "Material Already Uploaded";
}
我得到的警告是
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in......
有人帮助我找出我做错了什么。谢谢你提前
答案 0 :(得分:1)
SELECT Count()
而不是检索实际数据编辑:参数$ data由$mysqli->real_escape_string
正确处理
但$ filename也是“任意数据”,因为它几乎可以是客户端在http请求中发送的任何字符串。所以它也必须逃脱。
答案 1 :(得分:0)
而不是if(mysql_num_rows($rs) == 0)
,请使用if($rs->num_rows)
答案 2 :(得分:0)
echo $q;
你会得到一个查询在phpmyadmin中执行它,我猜这个查询是错误的。