Php Joomla SQL语法错误
我使用的代码是phpMyAdmin版本-4.0.10.2Php 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 =
<?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']);//这个代码更好吗?