Joomla SQL语法错误

时间:2015-10-08 18:14:37

标签: php select mysqli joomla

我使用此代码,我的phpMyAdmin ver - 4.0.10.2

<?php 

    $db = JFactory::getDBO();

    $pid = $forum['Review']['listing_id'];

    $ipaddress = $forum['User']['ipaddress'];

    $query = "SELECT count(ipaddress) AS addresses_found FROM threads WHERE ipaddress = {$ipaddress} AND pid = {$pid}";

    $count_ip = $db->setQuery($query)->loadResult();

    if($count_ip >= 2){
    echo '<p> Your ip repeated </ p>';
    }

    ?>

并看到此错误:

  

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在&#39; AND pid = 315&#39;附近使用正确的语法。第1行SQL = SELECT count(ipaddress)AS addresses_found FROM threads WHERE ipaddress = 127.0.0.0 AND pid = 315

那是什么?

1 个答案:

答案 0 :(得分:7)

  

“它是什么?”

这意味着$ipaddress包含MySQL抱怨的字符,是一个字符串,而不像{$pid}的整数可以保持不变(如果该列也是一个int)。

WHERE ipaddress = {$ipaddress}

$ipaddress变量需要用引号括起来:

WHERE ipaddress = '$ipaddress'

补充说明;您的代码很容易注入SQL。最好使用准备好的声明:

是否有任何用户输入或互动。