У меня есть поле MySQL («imagelocation»), которое содержит относительный путь к изображению. По существу конструкция: «DirectoryName/ImageName.png« / «вызывает проблему. Я получаю сообщение об ошибке: «Неизвестный столбец« Аналог »в поле« »(аналоговый - это имя каталога.)MySQLI- Разрешить использование прямого слэша с помощью оператора вставки
Перед созданием имени пути выполняется следующий код для возврата только" чистый "изображение name.
$imagelocation=trim(SanitizeString($_FILES['imagevar']['name']));
Имя пути строится с помощью следующего кода:
$imagelocation=trim($magazinedirectory . "/" . $imagelocation);
Запрос будет выполнен:
$query="INSERT INTO tblIssueList(IssueDate,MagazineNUM,CoverArtistNUM,ImageLocation)" .
" VALUES({$issuedate},{$magazineidnum},{$artistidnum},{$imagelocation})";
Запрос работает, когда "imagelocation" удаляется. Запрос также работает с "imagelocation", когда "/" удален.
Как можно сохранить относительное имя пути в поле «imagelocation»?
Вы уязвим для [sql injection attack] (http://bobby-tables.com), и если вы используете правильные методы построения запросов SAFE, никогда не было бы этой проблемы в первую очередь. Как написано, вы говорите БД, чтобы сделать ОТДЕЛЕНИЕ: «ВСТАВИТЬ ... ЦЕННОСТИ (bar/baz/qux)' is »бар делится на baz, разделенный на qux», а не путь –
@MarcB: Спасибо за эту мысль. Я все еще изучаю MySQLi, его медленный ход, Learning PHP, MYSQL & Javascript от Nixon охватывает использование подготовленных операторов и заполнителей для повышения безопасности. Эта база данных в настоящее время находится в домашней локальной сети. Нет доступа в Интернет. Когда я перехожу к «простым» проблемам, таким как мой текущий пост; У меня будет время, чтобы включить более продвинутые функции. –
@SteveR. Честно говоря, вам лучше не учиться, чтобы это было неправильно. Любая книга, блог или учебник, в котором говорится о том, что вы когда-либо * могли создавать запросы с конкатенацией строк, а не с заполнителями, и готовые заявления, должны, безусловно, быть уволены как квалифицированный ресурс. –