Я этот код, который вставляет имена файлов внутри каталога в базу данныхПочему я получаю предупреждение mysql_real_escape_string()?
<?php
include("db.php");
$path = 'C:\Users\Firdavs\Desktop\Ypp';
$directories = new RecursiveIteratorIterator(
new ParentIterator(new RecursiveDirectoryIterator($path)),
RecursiveIteratorIterator::SELF_FIRST);
foreach ($directories as $directory) {
if($directory->isDir())
{
foreach (new DirectoryIterator($directory) as $file)
{
if($file->isDot()) continue;
if($file->isFile())
{
$filename=$file->getFilename();
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if($ext=='docx')
{
mysqli_query($con,"INSERT INTO Organ (Name) VALUES ('$filename')");
$filename=mysql_real_escape_string($filename);
}
}
}
}
}
?>
Это показывает предупреждение следующих
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user ''@'localhost' (using password: NO) in Y:\home\localhost\www\jurist\import.php on line 22
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in Y:\home\localhost\www\jurist\import.php on line 22
Но код все еще работает, вставляя имена файлов в базу данных;
Мой db.php следит за
$con= mysqli_connect("localhost","root","mypassword","jurist") or die("Error " . mysqli_error($con));
Что может быть проблема?
Если вы используете MySQLi в любом случае, научитесь использовать подготовленные операторы с переменными связывания, тогда вам не нужно беспокоиться об экранировании. –
'mysql_real_escape_string' должен появиться перед' msyql_query', но, как указано, вы должны использовать ' MySQLi' или 'PDO' –