未检测到mysqli :: error()

时间:2015-01-06 00:11:37

标签: php mysqli

我是php的初学者,我有一个问题,我无法自己解释..我有两个文件:第一个index.html:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
</head>
<body>
    <form enctype="multipart/form-data" action="upload.php" method="post">
        <input name="file" type="file"/>
        <input type="submit" value="Wyslij" />
    </form>
</body>
</html>

和第二个upload.php:

<?php

if(isset($_FILES['file'])){
$db=new mysqli('localhost','root','kursphp','products');

    $name= $db->real_escape_string($_FILES['file']['name']);
    $type=$db->real_escape_string($_FILES['file']['type']);
    $data=$db->real_escape_string(file_get_contents($_FILES['file']['tmp_name']));
    $size=intval($_FILES['file']['size']);

    //question

    $query= "INSERT INFO files(name,type,size,data,created) VALUES ('{$name}','{$type}','{$size}','{$data}',NOW())";

    $result=$db->query($query);

    if($result){
    echo "File saved";
    } else {
        echo $db->error();
    }

    $db->close();
}

?>

当我上传某个文件时,出现错误:

Fatal error: Call to undefined method mysqli::error() in D:\wamp\www\php_z\upload\upload.php on line 20

我不知道为什么会出现这种错误,因为我声明:db是mysqli的一个对象。我在PHP的文档中读到了

mysqli::$error -- mysqli_error — Returns a string description of the last error

所以有方法error() ..有人可以告诉我如何解决这个问题吗?

3 个答案:

答案 0 :(得分:2)

你有一些错误。

第一个是:

INSERT INFO files
         ^

应该是INTO而不是INFOTF在键盘上彼此靠近,因此可能会发生。

然后echo $db->error();应该显示为echo $db->error;

这应该是面向对象的风格,而不是程序风格。

答案 1 :(得分:0)

它不是一个函数,它是一个变量。像这样访问它:

echo $db->error;

Read More

答案 2 :(得分:0)

没有名为error的方法。有一个名为error的变量。因此,改变

echo $db->error();

echo $db->error;