2014-12-10 4 views
0

я имею эту проблему:
, когда я хочу, чтобы вставить переменную в MySQL БД работает: D
, но когда я хочу, чтобы выбрать его он будет выводить мне эту ошибку:
Catchable фатальная ошибка: Объект класса mysqli_result не может быть преобразован в строку в Мой код находится под этим текстом: D
Спасибо за каждый ответ: D
MySQL Как выбрать вставленный переменную из MySQL

<meta charset="utf-8"> 
<style type="text/css">body {text-align: center;}</style> 
<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST"> 
<table border="0" align="center"> 
    <tr> 
     <th> 
      <textarea name="comment" placeholder="Okomentuj túto stránku...(Najviac 500 znakov)" rows="10" cols="100" maxlength="5000"></textarea> 
     </th> 
    </tr> 
    <tr> 
     <th> 
      <input type="submit" name="submit" value="Odoslať"> 
     </th> 
    </tr> 
</table> 
</form> 
<?php 
$submit = $_POST["submit"]; 
$name = $_SESSION['user_name']; 
$comment = $_POST["comment"]; 
$location = 1; 
$conn = mysqli_connect("localhost", "Kubajsk0", "", "login"); 
if (mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
if ($location = "1") { 
if($submit) 
    {if($name&&$comment){ 
     $insert=mysqli_query($conn,"INSERT INTO serverlist_comments (name, carriage, location) VALUES ('$name','$comment','$location') "); 
    }else { 
    echo "<script>alert('Please fill out all fields.');</script>";/*echo "please fill out all fields";*/ 
} 
} 
} else { 
echo "Nepodarilo sa tvoj koment uložiť do databázi :(<br/> 
     Skús to neskôr :D"; 
} 
$show_name = "SELECT name FROM `serverlist_comments` WHERE 1"; 
$result = $conn->query($show_name); 
echo $result; 
?> 
+0

Вы должны поставить кавычку "'" вокруг имен столбцов, чтобы избежать ошибок MySQL в будущем – SuperDJ

+0

вы должны использовать' mysqli_fetch_row ($ результат) 'и' пользователь print_r() '' InstEd с помощью echo'. – Harshana

+0

** ПРЕДУПРЕЖДЕНИЕ **: при использовании 'mysqli' вы должны использовать параметризованные запросы и [' bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), чтобы добавить пользователя данные по вашему запросу. ** НЕ используйте ** интерполирование строк, чтобы выполнить это, потому что вы создадите серьезные [SQL-инъекции ошибок] (http://bobby-tables.com/). – tadman

ответ

0

Попробуйте с этим

$show_name = "SELECT name FROM `serverlist_comments` WHERE 1"; 
$result = mysqli_query($conn,$show_name); 
print_r(mysqli_fetch_assoc($result)); 
echo $result['name']; 

Вы также можете использовать, как это.

$show_name = "SELECT name FROM `serverlist_comments` WHERE 1"; 
$result = mysqli_query($conn,$show_name); 
print_r(mysqli_fetch_array($result)); 
echo $result[0]; 

Если у вас более одного сырья, то используйте это.

$show_name = "SELECT name FROM `serverlist_comments` WHERE 1"; 
$result = mysqli_query($conn,$show_name); 
while($row = mysqli_fetch_assoc($result)){ 
    print_r($row); 
    echo "<hr />"; 
} 
0

пытались ли вы это вместо этого?

$result = $conn->query("SELECT name FROM `serverlist_comments`"); 
    print_r ($result); // to see the contents of the result array 

Для того, чтобы эхо из определенного значения из массива вам нужно получить доступ к значениям, как так:

$output = $result->fetch_assoc(); 
    echo $result['*column_name*']; 
+0

Я попробовал это прямо сейчас, а вывод: «mysqli_result Object ([current_field] => 0 [field_count] => 1 [lengths] => [num_rows] => 2 [type] => 0)" –

0

извините за не точно, я не знаю, которые MySQL библиотеки вы используете в php.

наверняка вы должны сделать что-то вроде $ row = $ result-> fetch_assoc(); echo $ row ["name"];

Результат запроса обычно должен быть выбран в форме массива или ассоциативного массива.

Другие библиотеки используют некоторую привязку, в которой вы объявляете, перед тем как переменная содержит параметры и результаты. , но не похоже на вашу ситуацию. мне кажется вы используете стандартный разъем MySQL в виде класса вместо процессуальной формы

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