<p>我需要在Python中复制下面的函数。我包括了正在工作的PHP代码,需要Python方面的帮助,因为我现在完全迷路了</p>
<p>读取RFID卡并通过串行总线将标签传输到Python。这部分代码是有效的。我遇到的问题是插入这个信息字符串作为mySQL中要查找的信息字符串</p>
<pre><code><?php
require 'database.php';
$UIDresult=$_POST["UIDresult"];
$Write="<?php $" . "UIDresult='" . $UIDresult . "'; " . "echo $" . "UIDresult;" . "?>";
file_put_contents('UIDContainer.php',$Write);
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM table_mkaccess where id = ?";
$q = $pdo->prepare($sql);
$q->execute(array($UIDresult));
$data = $q->fetch(PDO::FETCH_ASSOC);
Database::disconnect();
$msg = null;
if (null==$data['name']) {
$msg = "0";
$data['id']=$UIDresult;
} else {
$msg = "1";
}
echo $msg;
?>
</code></pre>
<p>到目前为止我已经尝试过的Python代码,我缺少了什么</p>
<pre><code>import serial
import mysql.connector
rfid = serial.Serial(port = "/dev/ttyUSB0", baudrate=9600)
while True:
if (rfid.in_waiting > 0):
UID = rfid.readline()
UID = UID.decode('Ascii')
mydb = mysql.connector.connect(
host = "localhost",
user = "****",
password = "****",
database = "****")
mycursor = mydb.cursor(buffered=True)
sql = "SELECT * FROM table_mkaccess WHERE id = '%s'"
mycursor.execute(sql,(UIDresult,))
data = mycursor.fetchall()
if data ==0:
print('0')
else:
print('1')
</code></pre>
<p><strong>更新:</strong>
现在接收到以下错误</p>
<blockquote>
<p>Traceback (most recent call last): File "/home/base/testing3.py",
line 17, in
mycursor.execute(sql,(UIDresult,))</p>
</blockquote>
<blockquote>
<p>mysql.connector.errors.ProgrammingError: 1064 (42000): 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 '47D0D393\r\n'''
at line 1</p>
</blockquote>
<p>您必须将UID添加到查询polachlder</p>
<pre><code>mycursor = mydb.cursor(buffered=True)
sql = "SELECT * FROM table_mkaccess WHERE id = %s"
mycursor.execute(sql,(UID,))
data = mycursor.fetchall()
</code></pre>