How can I know if a client is using prepared statements?

sat*_*oru 5 mysql

When I use client libraries like MySQLdb or oursql, how can I know if it's using prepared statements or not?

Is there anyway I can tell the difference on the server side? Maybe by looking into some kind of logs?

EDIT: I'm using MySQL5.1

Boh*_*ian 2

假设客户端有权使用存储过程,则必须使用某种形式的日志记录。

\n\n

如果您可以控制客户端,则可以让客户端记录所有请求并检查该日志。

\n\n

如果您无法控制客户端,则可以在数据库服务器上打开详细日志记录并检查 SQL 语句与客户端 ID。

\n\n

如果您对数据库没有这种控制权,则可以通过修改存储过程以将发出请求的用户和时间戳等插入日志表中来“记录”它们。

\n\n

这些选项大致按偏好顺序呈现。

\n\n
\n\n

阅读此链接,了解打开通用查询日志记录所涉及的内容。来自该链接的 pr\xc3\xa9cis:

\n\n
\n

通用查询日志是mysqld所做事情的一般记录。当客户端连接或断开连接时,服务器将信息写入此日志,并记录从客户端接收到的每个 SQL 语句

\n
\n\n

从 MySQL5.1 开始,您可以general_log在运行时启用:SET GLOBAL general_log = 1

\n\n

并用于SELECT @@general_log_file定位日志文件。

\n