2013-05-20 2 views
-3

Im пытается вставить файл в таблицу, но им получать следующее сообщение об ошибке с кодом ниже:mysqli_real_escape_string() PHP ошибка вставки файла в базу данных

Предупреждение: mysqli_real_escape_string() ожидает ровно 2 параметра, 1 учитывая

вот мой PHP код:

<?php 


if(isset($_FILES['uploaded_file'])) { 
    // Make sure the file was sent without errors 
    if($_FILES['uploaded_file']['error'] == 0) { 

     $sql_connection = mysql_connect("localhost", "teste", "localhost"); 
     mysql_select_db("skande5_form", $sql_connection); 

     $nameFile = mysqli_real_escape_string($_FILES['uploaded_file']['name']); 
     $mime = mysqli_real_escape_string($_FILES['uploaded_file']['type']); 
     $size = mysqli_real_escape_string($_FILES['uploaded_file']['size']); 
     $data = mysqli_real_escape_string(file_get_contents($_FILES ['uploaded_file']['tmp_name'])); 

кто-нибудь знает, как решить эту проблему?

+4

1. Обратите внимание на сообщение об ошибке. 2. Перейдите в http://php.net/mysqli_real_escape_string и посмотрите, каким должен быть другой параметр. – Quentin

+0

Возможно также использовать PDO. – migg

+3

Не смешивайте 'mysql_connect' и' mysqli_real_escape_string'! Они из ** разных ** библиотек. – Quentin

ответ

2

Это происходит потому, что ваш смешиваем как mysql_* и mysqli_ функции, правильный синтаксис для mysql является mysql_real_escape_string

mysql_select_db и mysql_connect -> MySQL

mysqli_real_escape_string -> MySQLi

Я бы любезно предложил использовать mysqli и использовать подготовленный statment для avaiod любого риска инъекции mysql, посмотрите здесь How can I prevent SQL injection in PHP?.

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