$和#都支持动态sql;就是你传什么它就是什么区别: 1.#可以防止sql注入在sql执行时显示 '?' 比$安全 SELECT * FROM table WHERE id = ? 2.在使用#传入参数在sql解析的时候回默认为参数加上'';$则不会 SELECT * FROM table WHERE id = 'id' SELECT * FROM table ORDER BY $(id) 解析 SELECT * FROM table ORDER BY id