Итак, я создал форму, которая позволяет добавлять место, категорию и изображение в мою базу данных. Все это отлично работает на моем локальном хосте и правильно вставляет данные в мою базу данных. Однако, когда я размещаю форму на своем веб-сайте, я просто получаю «базу данных запросов ошибок». сообщение.Ошибка при запросе базы данных при перенастройке localhost на сервер
Я изменил файлы подключения, чтобы они имели правильную информацию о моем сервере, имени базы данных, имени пользователя и пароле.
Я подключаюсь к своей базе данных двумя разными способами. Один помощью MySQLi:
<?php
$dbc = mysqli_connect("localhost","root","","ssdb") or die (mysqli_connect_error());
mysqli_set_charset($dbc, 'utf8');
?>
И еще с помощью MySQL:
<?php
$con=mysql_connect("localhost","root","");
mysql_select_db("ssdb",$con);
?>
На моей форме я подключение к базе данных для получения категорий, которые вы можете выбрать, используя функцию Mysqli, так что нужно работать?
Я читал, что mysql не работает на php версии 7+, но мой сайт в настоящее время работает на php 5.6..something.
Предварительный просмотр моей формы можно увидеть здесь: http://stephanolsen.dk/imageupload/upload.php
Я не знаю, если это поможет, но мой код можно увидеть ниже:
Моя форма:
<?php include('header');?>
</head>
<body>
<div class="wrap">
<div class="container">
<div class="page-header">
<h1>Tilføj sted <small><br>Skriv adresse og beskrivelse</small></h1>
</div>
<form id="form" method="post" name="formsub" action="formaction.php" enctype="multipart/form-data">
<div class="form-group">
<label for="title">Titel</label>
<input type="text" name="title" class="form-control" id="title" placeholder="Titel">
</div>
<div class="form-group">
<label for="adresse">Adresse</label>
<input type="text" name="adresse" class="form-control" id="adresse" placeholder="Adresse">
</div>
<div class="form-group">
<label for="beskrivelse">Beskrivelse</label>
<input type="text" name="beskrivelse" class="form-control" id="beskrivelse" placeholder="Beskrivelse">
</div>
<!-- Choose category! -->
<?php
include('includes/connectdb.php');
/* Selects id and name from the table 'category' */
$query = "SELECT id, name FROM category";
$result_category = mysqli_query($dbc,$query);
?>
<!-- creating a form -->
<label for="Category">Category</label>
<br />
<!-- iterate through the WHILE LOOP -->
<?php while($row = mysqli_fetch_array($result_category)): ?>
<!-- Echo out values {id} and {name} -->
<input type="checkbox" name="category[]" value=" <?php echo $row['id']; ?> "><?php echo $row['name'] . '<br />'; ?>
<?php endwhile; ?>
<!-- Upload image! -->
<br/>
<input type="file" name="image" />
<br/><br/>
<input type="submit" name="Submit" value="Submit" class="btn btn-default"/>
</form>
</div> <!-- END CONTAINER -->
</div> <!-- END WRAP -->
<br />
</body>
</html>
Действие файл:
<?php
include('includes/connectdb.php');
$beskrivelse = $_POST['beskrivelse'];
$adresse = $_POST['adresse'];
$title = $_POST['title'];
$query = "INSERT INTO sted (title, beskrivelse, adresse) VALUES ('$title','$beskrivelse', '$adresse')";
mysqli_query($dbc,$query) or die('Error querying database.');
$last_id = mysqli_insert_id($dbc);
echo '<div class="wrap">';
echo '<div class="container">';
echo '<h4>Place has been added!</h4>';
echo '</div>';
echo '</div>';
?>
<?php
include('includes/connect.php');
$checkbox = $_POST['category'];
for ($i=0; $i<sizeof($checkbox);$i++) {
$query = "INSERT INTO placecategory (place_id, category_id) VALUES ('$last_id','".$checkbox[$i]."')";
mysql_query($query) or die(mysql_error());
}
echo "Category is inserted";
?>
<?php
ini_set('mysql.connect_timeout',300);
ini_set('default_socket_timeout',300);
?>
<?php
if(getimagesize($_FILES['image']['tmp_name'])== FALSE)
{
echo "Please select an image.";
}
else
{
$image= addslashes($_FILES['image']['tmp_name']);
$name= addslashes($_FILES['image']['name']);
$place_id=$last_id;
$image= file_get_contents($image);
$image= base64_encode($image);
saveimage($name,$image,$place_id);
}
displayimage();
function saveimage($name,$image,$place_id)
{
include('includes/connect.php');
$qry="INSERT INTO pictures (name,image,place_id) values ('$name','$image','$place_id')";
$result=mysql_query($qry,$con);
if($result)
{
//echo "<br/>Image uploaded.";
}
else
{
//echo "<br/>Image not uploaded.";
}
}
function displayimage()
{
include('includes/connect.php');
$qry="SELECT * FROM pictures";
$result=mysql_query($qry,$con);
while($row = mysql_fetch_array($result))
{
echo '<img height="300" width="300" src="data:image;base64,'.$row['image'].' "> ';
}
mysql_close($con);
}
?>
connectdb.php
<?php
# Connect on localhost for user root
# with password xxxxxxx to database userloginwebsystem
$dbc = mysqli_connect("localhost","root","","ssdb") or die (mysqli_connect_error());
#Display MySQL version and host
#if(mysqli_ping($dbc))
#{ echo 'MYSQL Server' .mysqli_get_server_info($dbc). ' <br> on ' . mysqli_get_host_info($dbc); }
# Set encoding to match PHP script
mysqli_set_charset($dbc, 'utf8');
?>
connect.php
<?php
$con=mysql_connect("localhost","root","");
mysql_select_db("ssdb",$con);
?>
Проверьте свои журналы ошибок для более описательной ошибки. Почему вы используете флип-флоп между MySQL API? –
Пожалуйста, прекратите использование 'mysql_ *' функций (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). [Эти расширения] (http://php.net/manual/en/migration70.removed-exts-sapis.php) были удалены в PHP 7. Узнайте о [подготовленном] (http://en.wikipedia.org/ wiki/Prepared_statement) для [PDO] (http://php.net/manual/en/pdo.prepared-statements.php) и [MySQLi] (http://php.net/manual/en/mysqli.quickstart .prepared-statements.php) и подумайте над использованием PDO, [это действительно довольно легко] (http://jayblanchard.net/demystifying_php_pdo.html). –
Пожалуйста, попробуйте свою вставку без кавычек. Также как ($ title, $ beskrivelse, $ adresse); Также вы можете включить отображение ошибок ni_set ('error_reporting', E_ALL); ini_set ('display_errors', 1); ini_set ('display_startup_errors', 1); –