2015-01-06 2 views
0

Я новичок в PHP, и у меня есть проблема, которую я не могу объяснить сам .. У меня есть два файла: первый один index.html:MySQLi :: Ошибка() не обнаружен

<!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 

Я не знаю, почему я получаю такого рода ошибки, потому что, как я d eclared: db - объект mysqli. Я прочитал в документации PHP, что

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

Таким образом, есть способ, такой error() .. Может кто-нибудь сказать мне, как это исправить?

+1

'ВСТАВИТЬ INFO files' Вы уверены в этом? Кодирование на iPhone? lol typo правильно? Они всегда есть. –

+0

omg Я сделал ошибку INSERT INTO, теперь он работает правильно. Я кодирую в VS, используя свободное расширение PHP для VS 2013, это очень плохо, я должен сказать .. Потому что я делаю такие глупые ошибки .. btw thx !! – user211112

+0

Добро пожаловать. Надеюсь, проблема решена. Вы хотите, чтобы я опубликовал ответ? –

ответ

2

Вы имеете несколько ошибок.

Первое существо:

INSERT INFO files 
     ^

, который должен читаться как INTO и не INFO. T и F находятся рядом друг с другом на клавиатуре, так что это может произойти.

Тогда есть echo $db->error();, который следует читать echo $db->error;

Это должно быть объектно-ориентированный стиль, а не процедурный стиль.

0

Это не функция, ее переменная. Доступ это следующим образом:

echo $db->error; 

Read More

0

Существует не метод с именем ошибки. Существует переменная с именем error. Таким образом, изменение

echo $db->error();

в

echo $db->error;

Смежные вопросы