我使用此代码,我的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
答案 0 :(得分:7)
“它是什么?”
这意味着$ipaddress
包含MySQL抱怨的字符,是一个字符串,而不像{$pid}
的整数可以保持不变(如果该列也是一个int)。
WHERE ipaddress = {$ipaddress}
$ipaddress
变量需要用引号括起来:
WHERE ipaddress = '$ipaddress'
补充说明;您的代码很容易注入SQL。最好使用准备好的声明:
是否有任何用户输入或互动。