2015-12-08 2 views
4

Итак, я создал форму, которая позволяет добавлять место, категорию и изображение в мою базу данных. Все это отлично работает на моем локальном хосте и правильно вставляет данные в мою базу данных. Однако, когда я размещаю форму на своем веб-сайте, я просто получаю «базу данных запросов ошибок». сообщение.Ошибка при запросе базы данных при перенастройке 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); 
?> 
+1

Проверьте свои журналы ошибок для более описательной ошибки. Почему вы используете флип-флоп между MySQL API? –

+3

Пожалуйста, прекратите использование '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). –

+0

Пожалуйста, попробуйте свою вставку без кавычек. Также как ($ title, $ beskrivelse, $ adresse); Также вы можете включить отображение ошибок ni_set ('error_reporting', E_ALL); ini_set ('display_errors', 1); ini_set ('display_startup_errors', 1); –

ответ

0

Если у вас нет виртуальной машины, вероятно, нужно подключиться к базе данных SQL с помощью кодов (IP адрес, Имя пользователя ЭСТ.) Дано вам вашим хостинговой компании.

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