Как сделать патч патча в базе данных? [Дубликат]

Каждый раз, когда вы получаете ...

"Warning: mysqli_fetch_object () ожидает, что параметр 1 будет mysqli_result, boolean задан«

... это, вероятно, из-за проблемы с вашим запросом. prepare() или query() могут возвращать FALSE (логическое), но это общее сообщение об отказе не оставляет вас в стороне от подсказок. Как вы узнаете, что не так с вашим запросом? Вы задаете !

Прежде всего убедитесь, что сообщения об ошибках включены и видны: добавьте эти две строки в начало файла (ов) сразу после открытия <?php:

error_reporting(E_ALL);
ini_set('display_errors', 1);

Если ваше сообщение об ошибках установлено в php.ini, вам не придется беспокоиться об этом. Просто убедитесь, что вы обрабатываете ошибки изящно и никогда не раскрываете истинные причины каких-либо проблем для ваших пользователей. Выявление истинной причины для общественности может быть приглашением на золото с гравировкой для тех, кто хочет нанести вред вашим сайтам и серверам. Если вы не хотите отправлять ошибки в браузер, вы всегда можете следить за журналами ошибок веб-сервера. Расположение журналов будет варьироваться от сервера к серверу, например, на Ubuntu журнал ошибок обычно находится в /var/log/apache2/error.log. Если вы изучаете журналы ошибок в среде Linux, вы можете использовать tail -f /path/to/log в окне консоли, чтобы видеть ошибки, когда они происходят в режиме реального времени .... или как вы их делаете.

Как только вы 'squared away на стандартном сообщении об ошибках, добавляющем проверку ошибок в вашем соединении с базой данных, и запросы дадут вам гораздо более подробную информацию о проблемах. Посмотрите на этот пример, где имя столбца неверно. Во-первых, код, возвращающий роковое сообщение об ошибке:

$sql = "SELECT `foo` FROM `weird_words` WHERE `definition` = ?";
$query = $mysqli->prepare($sql)); // assuming $mysqli is the connection
$query->bind_param('s', $definition);
$query->execute();

Ошибка является общей и не очень помогает вам в решении того, что происходит.

С помощью пары больше строк кода вы можете получить очень подробную информацию, которую вы можете использовать для решения проблемы сразу . Проверьте утверждение prepare() для правдивости, и если это хорошо, вы можете перейти к привязке и исполнению.

$sql = "SELECT `foo` FROM `weird_words` WHERE `definition` = ?";
if($query = $mysqli->prepare($sql)) { // assuming $mysqli is the connection
    $query->bind_param('s', $definition);
    $query->execute();
    // any additional code you need would go here.
} else {
    $error = $mysqli->errno . ' ' . $mysqli->error;
    echo $error; // 1054 Unknown column 'foo' in 'field list'
}

Если что-то не так, вы можете выплюнуть сообщение об ошибке, которое приведет вас к проблеме , В этом случае в таблице нет столбца foo, решение проблемы тривиально.

Если вы выберете, вы можете включить эту проверку в функцию или класс и расширить ее, обработав ошибки изящно, как упомянутых ранее.

-1
задан Judy 12 October 2015 в 16:50
поделиться

2 ответа

Поскольку вы не правильно описали свой вопрос или не предоставили никакого кода. Итак, я взял на себя ваш вопрос и отправил свой ответ. Выполните шаг.

1) Для загрузки изображения

<form method='POST' action='UploadImage.php' enctype="multipart/form-data">
    <input type='file' name='UploadImage'>
    <input type='submit' value="submit">
</form>

Предположим, что ваше имя папки проекта: MyProject (где все файлы проекта присутствуют), Сделайте одну папку внутри Папка «MyProject», а именно «MyUploadImages» Теперь

UploadImage.php

<?php
include('connect.php'); // Do Database Connection in this file (create a file namely connect.php inside MyProject Folder)
extract($_POST);

$UploadedFileName=$_FILES['UploadImage']['name'];
if($UploadedFileName!='')
{
  $upload_directory = "MyUploadImages/"; //This is the folder which you created just now
  $TargetPath=time().$UploadedFileName;
  if(move_uploaded_file($_FILES['files']['tmp_name'], $upload_directory.$TargetPath)){    
    $QueryInsertFile="INSERT INTO TableName SET ImageColumnName='$TargetPath'"; 
    // Write Mysql Query Here to insert this $QueryInsertFile   .                   
  }
}
?>

Теперь, в вашей таблице базы данных вы можете найти ImageColumnName, что путь изображения установлен как MyUploadImages / 1417Flower .jpg

2) Retreiving Image из базы данных

AnyPage.php

<?
$Query="SELECT * FROM TableName";
// Write mysql query to fetch $Query

store that ImageColumnName value to any variable say $MyPhoto.
?>

<img src="<?echo $MyPhoto;?>">
8
ответ дан Nana Partykar 5 September 2018 в 09:04
поделиться

или сделать мой ноутбук сервером >> Я не понимаю, что у вас есть сервер и php, а также сервер mysql?

Как сказал Нираджан, хороший способ сделать это - сохранить путь в БД и сам файл в нужную папку. Затем вы будете использовать поле с указанием пути к отображению вашего изображения:

for $image in $imagesList // *pseudo code*
    <img src="$image->getPath()">
endfor

Быстрый поиск в Интернете поможет вам узнать «реальный код», чтобы сделать это!

2
ответ дан singe batteur 5 September 2018 в 09:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: