> 백엔드 개발 > PHP 튜토리얼 > destoon复制模块是出现的mysql报错,求大神解决

destoon复制模块是出现的mysql报错,求大神解决

WBOY
풀어 주다: 2016-06-23 13:54:00
원래의
1602명이 탐색했습니다.

MySQL Query:SELECT * FROM [pre]vipcenter_25 WHERE status=3 ORDER BY LIMIT 0,20 
MySQL Error:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0,20' at line 1 MySQL Errno:0 
Message:MySQL Query Error



我想在公司主页上添加一个“成功案例”的新模块,复制的“品牌展示”的模块,把代码中的brand批量替换成success,其他都没问题就是在后台模块编辑时候出现这个报错


回复讨论(解决方案)

SELECT * FROM [pre]vipcenter_25 WHERE status=3 ORDER BY LIMIT 0,20 
检查下sql,是否可以执行。

ORDER BY  XX LIMIT 0,20 

不能执行,,

SELECT * FROM [pre]vipcenter_25 WHERE status=3  ORDER BY LIMIT 0,20 
多了套红的部分,如何你能运行?

SELECT * FROM [pre]vipcenter_25  也报错

SQL] SELECT * FROM [pre]vipcenter_25

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[pre]vipcenter_25' at line 1

SQL] SELECT * FROM [pre]vipcenter_25

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[pre]vipcenter_25' at line 1


确定你表的名称书写正确,还有order by  xx    xx必须为表的字段属性,你上面未加上。

我试了,加上了也不行啊


SQL] SELECT * FROM [pre]vipcenter_25

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[pre]vipcenter_25' at line 1


确定你表的名称书写正确,还有order by  xx    xx必须为表的字段属性,你上面未加上。
are you sure?

其实我也不太懂,我是个新手,但是我是完全复制的原有的模块的代码,数据库也新建了表,不知道是哪里出了问题

其实我也不太懂,我是个新手,但是我是完全复制的原有的模块的代码,数据库也新建了表,不知道是哪里出了问题



确定你表的名称书写正确,还有order by xx    xx必须为表的字段属性,你上面未加上。
1.select * from tablename?
2.select * from tablename order by id?

function get_list($condition = 'status=3', $order = 'edittime DESC', $cache = '') {
global $MOD, $pages, $page, $pagesize, $offset, $items, $sum;
if($page > 1 && $sum) {
$items = $sum;
} else {
$r = $this->db->get_one("SELECT COUNT(*) AS num FROM {$this->table} WHERE $condition", $cache);
$items = $r['num'];
}
$pages = defined('CATID') ? listpages(1, CATID, $items, $page, $pagesize, 10, $MOD['linkurl']) : pages($items, $page, $pagesize);
$lists = $catids = $CATS = array();
$result = $this->db->query(" SELECT * FROM {$this->table} WHERE $condition ORDER BY $order LIMIT $offset,$pagesize", $cache);
while($r = $this->db->fetch_array($result)) {
$r['adddate'] = timetodate($r['addtime'], 5);
$r['editdate'] = timetodate($r['edittime'], 5);
$r['todate'] = timetodate($r['totime'], 3);
$r['alt'] = $r['title'];
$r['title'] = set_style($r['title'], $r['style']);
$r['linkurl'] = $MOD['linkurl'].$r['linkurl'];
$catids[$r['catid']] = $r['catid'];
$lists[] = $r;
}

SELECT * FROM  destoon_vipcenter_25 WHERE status=3 ORDER BY  edittime LIMIT 0,20  可以查询

输出看看:
die("SELECT * FROM {$this->table} WHERE $condition ORDER BY $order LIMIT $offset,$pagesize");
检查{$this->table},$condition,$order , $offset, $pagesize,对应是否有值

SELECT * FROM [pre]vipcenter_25  也报错


表名字怎么会出现这个?

输出看看:
die("SELECT * FROM {$this->table} WHERE $condition ORDER BY $order LIMIT $offset,$pagesize");
检查{$this->table},$condition,$order , $offset, $pagesize,对应是否有值




什么都没输出,没有值


SELECT * FROM [pre]vipcenter_25  也报错


表名字怎么会出现这个?

这个我也不清楚,以前没学过php

源代码:

echo  "SELECT * FROM {$this->table} WHERE $condition ORDER BY $order LIMIT $offset,$pagesize";
die();

再试试

defined('IN_DESTOON') or exit('Access Denied');
class vipcenter {
var $moduleid;
var $itemid;
var $db;
var $table;
var $table_data;
var $split;
var $fields;
var $errmsg = errmsg;
var $pre;

    function vipcenter($moduleid) {
global $db, $table, $table_data, $MOD;
$this->moduleid = $moduleid;
$this->table = $table;
$this->table_data = $table_data;
$this->split = $MOD['split'];
$this->db = &$db;
$this->pre = $this->db->pre;
$this->fields = array('catid','level','title','style','fee','introduce','areaid','thumb','homepage','status','hits','username','addtime','adddate','editor','edittime','editdate','ip','template', 'linkurl','filepath','note','company','truename','telephone','mobile','address','email','msn','qq','ali','skype');
    }

function pass($post) {
global $DT_TIME, $MOD;
if(!is_array($post)) return false;
if(!$post['catid']) return $this->_(lang('message->pass_catid'));
if(strlen($post['title']) _(lang('message->pass_title'));
if(!$post['thumb']) return $this->_(lang('message->pass_logo'));
return true;
}

function set($post) {
global $MOD, $DT_TIME, $DT_IP, $_username, $_userid;
$post['editor'] = $_username;
$post['addtime'] = (isset($post['addtime']) && $post['addtime']) ? strtotime($post['addtime']) : $DT_TIME;
$post['adddate'] = timetodate($post['addtime'], 3);
$post['edittime'] = $DT_TIME;
$post['editdate'] = timetodate($post['edittime'], 3);
$post['fee'] = dround($post['fee']);
$post['homepage'] = fix_link(trim($post['homepage']));
$post['video'] = fix_link(trim($post['video']));
$post['video_width'] = intval($post['video_width']);
$post['video_height'] = intval($post['video_height']);
$post['title'] = trim($post['title']);
$post['content'] = stripslashes($post['content']);
$post['content'] = save_local($post['content']);
if($MOD['clear_link']) $post['content'] = clear_link($post['content']);
if($MOD['save_remotepic']) $post['content'] = save_remote($post['content']);
if($MOD['introduce_length']) $post['introduce'] = addslashes(get_intro($post['content'], $MOD['introduce_length']));
if($this->itemid) {
$new = $post['content'];
if($post['thumb']) $new .= 'destoon复制模块是出现的mysql报错,求大神解决';
$r = $this->get_one();
$old = $r['content'];
if($r['thumb']) $old .= 'destoon复制模块是出现的mysql报错,求大神解决';
delete_diff($new, $old);
} else {
$post['ip'] = $DT_IP;
}
if(!defined('DT_ADMIN')) {
$content = $post['content'];
unset($post['content']);
$post = dhtmlspecialchars($post);
$post['content'] = dsafe($content);
}
$post['content'] = addslashes($post['content']);
return array_map("trim", $post);
}

function get_one() {
$content_table = content_table($this->moduleid, $this->itemid, $this->split, $this->table_data);
        return $this->db->get_one("SELECT * FROM {$this->table} a,{$content_table} c WHERE a.itemid=c.itemid and a.itemid=$this->itemid");
}

function get_list($condition = 'status=3', $order = 'edittime DESC', $cache = '') {
global $MOD, $pages, $page, $pagesize, $offset, $items, $sum;
if($page > 1 && $sum) {
$items = $sum;
} else {
$r = $this->db->get_one("SELECT COUNT(*) AS num FROM {$this->table} WHERE $condition", $cache);
$items = $r['num'];
}
$pages = defined('CATID') ? listpages(1, CATID, $items, $page, $pagesize, 10, $MOD['linkurl']) : pages($items, $page, $pagesize);
$lists = $catids = $CATS = array();

$result = $this->db->query("SELECT * FROM {$this->table} WHERE $condition ORDER BY $order LIMIT $offset,$pagesize", $cache);

while($r = $this->db->fetch_array($result)) {
$r['adddate'] = timetodate($r['addtime'], 5);
$r['editdate'] = timetodate($r['edittime'], 5);
$r['todate'] = timetodate($r['totime'], 3);
$r['alt'] = $r['title'];
$r['title'] = set_style($r['title'], $r['style']);
$r['linkurl'] = $MOD['linkurl'].$r['linkurl'];
$catids[$r['catid']] = $r['catid'];
$lists[] = $r;
}
if($catids) {
$result = $this->db->query("SELECT catid,catname,linkurl FROM {$this->db->pre}category WHERE catid IN (".implode(',', $catids).")");
while($r = $this->db->fetch_array($result)) {
$CATS[$r['catid']] = $r;
}
if($CATS) {
foreach($lists as $k=>$v) {
$lists[$k]['catname'] = $v['catid'] ? $CATS[$v['catid']]['catname'] : '';
$lists[$k]['caturl'] = $v['catid'] ? $MOD['linkurl'].$CATS[$v['catid']]['linkurl'] : '';
}
}
}
return $lists;
}

function add($post) {
global $MOD;
$post = $this->set($post);
$sqlk = $sqlv = '';
foreach($post as $k=>$v) {
if(in_array($k, $this->fields)) { $sqlk .= ','.$k; $sqlv .= ",'$v'"; }
}
        $sqlk = substr($sqlk, 1);
        $sqlv = substr($sqlv, 1);
$this->db->query("INSERT INTO {$this->table} ($sqlk) VALUES ($sqlv)");
$this->itemid = $this->db->insert_id();
$content_table = content_table($this->moduleid, $this->itemid, $this->split, $this->table_data);
$this->db->query("INSERT INTO {$content_table} (itemid,content) VALUES ('$this->itemid', '$post[content]')");
$this->update($this->itemid);
if($post['status'] == 3 && $post['username'] && $MOD['credit_add']) {
credit_add($post['username'], $MOD['credit_add']);
credit_record($post['username'], $MOD['credit_add'], 'system', lang('my->credit_record_add', array($MOD['name'])), 'ID:'.$this->itemid);
}
clear_upload($post['content'].$post['thumb'], $this->itemid);
return $this->itemid;
}

function edit($post) {
$this->delete($this->itemid, false);
$post = $this->set($post);
$sql = '';
foreach($post as $k=>$v) {
if(in_array($k, $this->fields)) $sql .= ",$k='$v'";
}
        $sql = substr($sql, 1);
    $this->db->query("UPDATE {$this->table} SET $sql WHERE itemid=$this->itemid");
$content_table = content_table($this->moduleid, $this->itemid, $this->split, $this->table_data);
    $this->db->query("UPDATE {$content_table} SET content='$post[content]' WHERE itemid=$this->itemid");
$this->update($this->itemid);
clear_upload($post['content'].$post['thumb'], $this->itemid);
if($post['status'] > 2) $this->tohtml($this->itemid, $post['catid']);
return true;
}

function tohtml($itemid = 0, $catid = 0) {
global $module, $MOD;
if($MOD['show_html'] && $itemid) tohtml('show', $module, "itemid=$itemid");
}

function update($itemid) {
$item = $this->db->get_one("SELECT * FROM {$this->table} WHERE itemid=$itemid");
$update = '';
$keyword = $item['title'].','.$item['company'].','.strip_tags(cat_pos(get_cat($item['catid']), ',')).strip_tags(area_pos($item['areaid'], ','));
if($keyword != $item['keyword']) {
$keyword = str_replace("//", '', addslashes($keyword));
$update .= ",keyword='$keyword'";
}
$item['itemid'] = $itemid;
$linkurl = itemurl($item);
if($linkurl != $item['linkurl']) $update .= ",linkurl='$linkurl'";
$member = $item['username'] ? userinfo($item['username']) : array();
if($member) {
foreach(array('groupid','vip','validated','company','areaid','truename','telephone','mobile','address','qq','msn','ali','skype') as $v) {
if($item[$v] != $member[$v]) $update .= ",$v='".addslashes($member[$v])."'";
}
if($item['email'] != $member['mail']) $update .= ",email='".addslashes($member['mail'])."'";
}
if($update) $this->db->query("UPDATE {$this->table} SET ".(substr($update, 1))." WHERE itemid=$itemid");
}

function recycle($itemid) {
if(is_array($itemid)) {
foreach($itemid as $v) { $this->recycle($v); }
} else {
$this->db->query("UPDATE {$this->table} SET status=0 WHERE itemid=$itemid");
$this->delete($itemid, false);
return true;
}
}

로그인 후 복사
로그인 후 복사

function restore($itemid) {
global $module, $MOD;
if(is_array($itemid)) {
foreach($itemid as $v) { $this->restore($v); }
} else {
$this->db->query("UPDATE {$this->table} SET status=3 WHERE itemid=$itemid");
if($MOD['show_html']) tohtml('show', $module, "itemid=$itemid");
return true;
}
}

function delete($itemid, $all = true) {
global $MOD;
if(is_array($itemid)) {
foreach($itemid as $v) {
$this->delete($v, $all);
}
} else {
$this->itemid = $itemid;
$r = $this->get_one();
if($MOD['show_html']) {
$_file = DT_ROOT.'/'.$MOD['moduledir'].'/'.$r['linkurl'];
if(is_file($_file)) unlink($_file);
}
if($all) {
$userid = get_user($r['username']);
if($r['thumb']) delete_upload($r['thumb'], $userid);
if($r['content']) delete_local($r['content'], $userid);
$this->db->query("DELETE FROM {$this->table} WHERE itemid=$itemid");
$content_table = content_table($this->moduleid, $this->itemid, $this->split, $this->table_data);
$this->db->query("DELETE FROM {$content_table} WHERE itemid=$itemid");
if($MOD['cat_property']) $this->db->query("DELETE FROM {$this->db->pre}category_value WHERE moduleid=$this->moduleid AND itemid=$itemid");
if($r['username'] && $MOD['credit_del']) {
credit_add($r['username'], -$MOD['credit_del']);
credit_record($r['username'], -$MOD['credit_del'], 'system', lang('my->credit_record_del', array($MOD['name'])), 'ID:'.$this->itemid);
}
}
}
}

function check($itemid) {
global $_username, $DT_TIME, $MOD;
if(is_array($itemid)) {
foreach($itemid as $v) { $this->check($v); }
} else {
$this->itemid = $itemid;
$item = $this->get_one();
if($MOD['credit_add'] && $item['username'] && $item['hits'] < 1) {
credit_add($item['username'], $MOD['credit_add']);
credit_record($item['username'], $MOD['credit_add'], 'system', lang('my->credit_record_add', array($MOD['name'])), 'ID:'.$this->itemid);
}
$editdate = timetodate($DT_TIME, 3);
$this->db->query("UPDATE {$this->table} SET status=3,hits=hits+1,editor='$_username',edittime=$DT_TIME,editdate='$editdate' WHERE itemid=$itemid");
$this->tohtml($itemid);
return true;
}
}

function reject($itemid) {
global $_username, $DT_TIME;
if(is_array($itemid)) {
foreach($itemid as $v) { $this->reject($v); }
} else {
$this->db->query("UPDATE {$this->table} SET status=1,editor='$_username' WHERE itemid=$itemid");
return true;
}
}

function clear($condition = 'status=0') {
$result = $this->db->query("SELECT itemid FROM {$this->table} WHERE $condition ");
while($r = $this->db->fetch_array($result)) {
$this->delete($r['itemid']);
}
}

function level($itemid, $level) {
$itemids = is_array($itemid) ? implode(',', $itemid) : $itemid;
$this->db->query("UPDATE {$this->table} SET level=$level WHERE itemid IN ($itemids)");
}

function refresh($itemid) {
global $DT_TIME;
$editdate = timetodate($DT_TIME, 3);
$itemids = is_array($itemid) ? implode(',', $itemid) : $itemid;
$this->db->query("UPDATE {$this->table} SET edittime='$DT_TIME',editdate='$editdate' WHERE itemid IN ($itemids)");
}

function _($e) {
$this->errmsg = $e;
return false;
}
}

?>

로그인 후 복사
로그인 후 복사

输出:SELECT * FROM destoon_vipcenter_25 WHERE status=3 ORDER BY LIMIT 0,20

echo  "SELECT * FROM {$this->table} WHERE $condition ORDER BY $order LIMIT $offset,$pagesize";
die();

再试试


你还是针对这个问题,贴出输出结果吧,不然你问的问题,没办法解答了。

问题算是解决了,function get_list($condition = 'status=3',  $order = 'edittime DESC', $cache = '') {
global $MOD, $pages, $page, $pagesize, $offset, $items, $sum;
if($page > 1 && $sum) {
$items = $sum;
} else {
$r = $this->db->get_one("SELECT COUNT(*) AS num FROM {$this->table} WHERE $condition", $cache);
$items = $r['num'];
}
$pages = defined('CATID') ? listpages(1, CATID, $items, $page, $pagesize, 10, $MOD['linkurl']) : pages($items, $page, $pagesize);
$lists = $catids = $CATS = array();

$result = $this->db->query("SELECT * FROM {$this->table} WHERE $condition ORDER BY  $order LIMIT $offset,$pagesize", $cache);



是获得不了$order的值,直接用edittime DESC代替$order,运行没问题。但是现在不明白是为什么获得不了$order的值


echo  "SELECT * FROM {$this->table} WHERE $condition ORDER BY $order LIMIT $offset,$pagesize";
die();

再试试


你还是针对这个问题,贴出输出结果吧,不然你问的问题,没办法解答了。



还是非常感谢你!

这个问题我告诉你原因吧,你复制了模块之后 没对模块进行设置  点击菜单最下面 模块设置 设置一下模块就好了。 这绝对是正确答案 你不要着急去改代码  代码没有问题的  。

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿