2014-02-14 3 views
-1

Привет, я начинаю изучать php 5 и mysqli, но здесь я пытаюсь найти ту же проблему, что и у меня, но я не получил решение, которое пытался найти.

Проблема в том, что я хочу использовать сеанс назначения как мою переменную для моего запроса. Но Im имея такого рода ошибки:

Catchable fatal error: Object of class mysqli_result 
could not be converted to string in 

Вот моя страница:

connect.inc.ph

$con = mysqli_connect($host, $user, $pass, $dbname); 

if(mysqli_connect_errno()){ 
    echo "Failed to Connect to Mysql:" . mysqli_connect_error(); 
    } 

core.inc.php

ob_start(); 
session_start(); 
$current_file = $_SERVER['SCRIPT_NAME']; 


function loggedin(){ 
if(isset($_SESSION['user_id']) && !empty($_SESSION['user_id'])) { 
    return true; 
    } else{ 
     return false; 
    } 

} 

index.php

require 'core.inc.php'; 
require 'connect.inc.php'; 


if(loggedin()){ 

    header('Location:main_cp.php'); 
     } else{ 

     include 'login.php'; 
     } 

main_cp.php

Вот Im получаю ошибку:

$user_id = $_SESSION['user_id'];         
$sql="SELECT idno,FullName FROM user_info WHERE idno='$user_id'"; 


if ($result=mysqli_query($con,$sql)) { 
    if ($obj=mysqli_fetch_object($result)) { 
       echo $obj->idno,' - ' . $obj->FullName; 
    }        
    } 

Извините за Newbie вопрос.

Многие благодарю вас.

ответ

0

Там нет никакого способа, что ваш код может даже быть запущен, как написано:

$query="SELECT idno,FullName FROM user_info WHERE idno='$user_id'"; 
^^^^^^---- note variable name here 

if ($result=mysqli_query($con,$sql)) { 
           ^^^---completely different variable 

Если $sql не был определен ранее и содержит действительный запрос, ваш звонок запроса не будет, и никогда не достигает даже выборки коды.

+0

ой извините я забыл изменить переменную. – zeus2026

+0

Что касается вашей ошибки, '$ obj' не может быть объектом' mysqli_result'. fetch_obj() возвращает объект 'stdClass'. Ваша ошибка должна быть в другом месте, или вы вставили неправильный код. –

1

Во-первых, вам действительно нужно дезинфицировать ваш запрос:

$query="SELECT idno,FullName FROM user_info WHERE idno='".mysqli_real_escape_string($con,$user_id)."'"; 

Во-вторых, ваша ошибка в запросе. Переменная $ sql не существует. Попробуйте это:

if ($result=mysqli_query($con,$query)) 
+0

большое спасибо, сэр! GB – zeus2026

+0

Привет, я пытаюсь mysqli_escape_string(), но есть ошибка. Предупреждение: mysqli_real_escape_string() ожидает, что параметр 2 будет строкой, объект указан, я думаю, что $ user_id did'nt не вводится как строка. – zeus2026

+0

Тогда что-то не так с вашим кодом. Потому что в примере, который я опубликовал, он работает. – Kovo

-3

Попробуйте изменить запрос с этим: ВЫБРАТЬ IDNO, FullName FROM user_info WHERE IDNO = '{$ user_id}'

добавить фигурные скобки.

+1

-1: Это абсолютно не имеет значения. '' $ foo "и' "{$ foo}" 'идентичны по отношению к PHP. –

+0

tnx для ответа, но, как сказал Марк, когда php обеспокоен, нет никакой разницы. Спасибо, спасибо. – zeus2026

1

Попробуйте это,

$user_id = $_SESSION['user_id']; 
$sql="SELECT idno,FullName FROM user_info WHERE idno='$user_id'"; 
if ($result=mysqli_query($con,$sql)) { 
    $row_cnt = mysqli_num_rows($result); 
    if($row_cnt>0){ 
     $obj=mysqli_fetch_object($result); 
     echo $obj->idno,' - ' . $obj->FullName; 
    } 
} 
Смежные вопросы