擅长:python、mysql、java
<p>如注释中所述,您没有引用这些值,因此在最终的SQL查询中,诸如IP地址之类的字符串没有所需的单引号。在</p>
<p>正确且安全的方法是使用参数化查询。您不必担心引用,也不必担心在使用字符串操作手动构造查询字符串时可能出现的SQL注入漏洞。对于您的示例,您可以这样做:</p>
<pre><code>query = """INSERT INTO icecast_monitor.status_log
(website_online, icecast_source_online, icecast_source_ip,
icecast_no_listeners, centerpoint_online, centerpoint_connection,
horsleypark_online, horsleypark_connection, system_ok)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)"""
cursor.execute(query, (website_online, icecast_source_online, icecast_source_ip, icecast_no_listeners, centerpoint_online, centerpoint_connection, horsleypark_online, horsleypark_connection, system_ok))
</code></pre>
<p>它使用占位符<code>%s</code>来指示参数应该插入的位置,然后<code>cursor.excute()</code>将第二个参数中的参数和正确的引号插入到查询中,然后发送查询执行。在</p>