php
  • mysql
  • 2013-10-03 2 views -2 likes 
    -2

    Ниже кода не работаетPHP выборки данных с использованием Int столбца

    $ID=2; 
    mysql_connect($localhost,$username,$password); 
    mysql_select_db(productlist) or die("Unable to select database"); 
    $query='SELECT * FROM HolisticSerums where ProductID =$ID' ; 
    $result=mysql_query($query); 
    $array = mysql_fetch_assoc($result); 
    echo $array['Size']; 
    mysql_close(); 
    

    но когда я использую 2 вместо $ ID это работает

    //$ID=2; 
        mysql_connect($localhost,$username,$password); 
        mysql_select_db(productlist) or die("Unable to select database"); 
        $query='SELECT * FROM HolisticSerums where ProductID =2' ; 
        $result=mysql_query($query); 
        $array = mysql_fetch_assoc($result); 
        echo $array['Size']; 
        mysql_close(); 
    

    первым, пожалуйста, скажите мне, как типаж целое число PHP для int базы данных? Может ли кто-нибудь помочь мне в чем проблема в 1-м случае .. ?? столбец ProductID является INT в базе данных

    +0

    Перед тем, как сделать '$ запрос = 'что происходит, когда вы выполняете' echo $ ID'? –

    +0

    Вы можете попробовать '$ query =" SELECT * FROM HolisticSerums, где ProductID = '$ ID' ";' –

    +0

    Обратите внимание, что 'mysql_' lib устарел и опасен, вместо этого используйте PDO. Столы Бобби будут благодарны. http://stackoverflow.com/questions/332365/how-does-the-sql-injection-from-the-bobby-tables-xkcd-comic-work и смотрите также: http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php? rq = 1 – Johan

    ответ

    0
    $query='SELECT * FROM HolisticSerums where ProductID =$ID' ; 
    

    Должно быть:

    $query="SELECT * FROM HolisticSerums where ProductID =$ID" ; 
    

    С «-string не синтаксического анализа переменных.

    +0

    Фактически это должно быть «' SELECT * FROM HolisticSerums WHERE ProductID = '. $ ID' - конкатенация намного проще, чем интерполяция. –

    +0

    Да, но он становится уродливым, когда есть много переменных –

    +0

    да да колинк спасибо .. жаль, что я включил $ ID внутри, спасибо, так много .. kolink –

    0

    Поскольку PHP переменные не интерполируются в одинарные кавычки

    $query='SELECT * FROM HolisticSerums where ProductID =$ID' ; // $ID Should be inside double quotes or outside all 
    
    
    $query="SELECT * FROM HolisticSerums where ProductID =".$ID ; 
    
    0

    вы должны использовать SQL запрос в 2-х вариантах

    $query="SELECT * FROM HolisticSerums where ProductID =$ID"; 
        ^            ^
    

    или

    $query="SELECT * FROM HolisticSerums where ProductID =". $ID; 
    
    Смежные вопросы