Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Joomla SQL语法错误_Php_Select_Mysqli_Joomla - Fatal编程技术网

Php Joomla SQL语法错误

Php Joomla SQL语法错误,php,select,mysqli,joomla,Php,Select,Mysqli,Joomla,我使用的代码是phpMyAdmin版本-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 =

我使用的代码是phpMyAdmin版本-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服务器版本对应的手册,以了解在第1行SQL=SELECT count(ipaddress)处使用near'和pid=315'作为地址的正确语法,这些地址是从ipaddress=127.0.0.0和pid=315的线程中找到的

那是什么

“那是什么?”

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

其中ipaddress={$ipaddress}

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

其中ipaddress='$ipaddress'

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

如果有任何用户输入或交互

“那是什么?”

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

其中ipaddress={$ipaddress}

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

其中ipaddress='$ipaddress'

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


应该有任何用户输入或交互。

你比我快。事实上,ip地址包含点。再一次,这里需要赌博系统:)thx伙计们!与“$pid”一起工作!请给我解释一下SQL注入。我如何保护这段代码?欢迎@Brigadier查看我答案中的链接。它解释了这个问题,并包含了你可以参考的外部链接。欢迎@Brigadier,我想你知道如何正确地解决这个问题;-)Cheers$pid=mysqli_real_escape_string($mysqli,$forum['List']['id'])$ipaddress=mysqli\u real\u escape\u字符串($mysqli,$forum['User']['ipaddress']);//这个密码更好?你赢了我。事实上,ip地址包含点。再一次,这里需要赌博系统:)thx伙计们!与“$pid”一起工作!请给我解释一下SQL注入。我如何保护这段代码?欢迎@Brigadier查看我答案中的链接。它解释了这个问题,并包含了你可以参考的外部链接。欢迎@Brigadier,我想你知道如何正确地解决这个问题;-)Cheers$pid=mysqli_real_escape_string($mysqli,$forum['List']['id'])$ipaddress=mysqli\u real\u escape\u字符串($mysqli,$forum['User']['ipaddress']);//这个代码更好吗?