Php 如何从MySql服务器获取数据?
我正在使用Arduino Uno和SIM900 GSM模块进行一个非常重要的项目。基本上,我从RFID卡(RFID-RC522)正确读取了ID,我需要使用URL将ID发送到主机提供商的数据库(000webhost),我需要获得查询的输出,但正如您将看到的,代码中有一个简单的更改,输出完全更改 以下是需要发送输出的PHP文件的代码:Php 如何从MySql服务器获取数据?,php,arduino,Php,Arduino,我正在使用Arduino Uno和SIM900 GSM模块进行一个非常重要的项目。基本上,我从RFID卡(RFID-RC522)正确读取了ID,我需要使用URL将ID发送到主机提供商的数据库(000webhost),我需要获得查询的输出,但正如您将看到的,代码中有一个简单的更改,输出完全更改 以下是需要发送输出的PHP文件的代码: <?php $dbhost = "localhost"; $dbuser = "*******"; $dbpass = "*******"; $db =
<?php
$dbhost = "localhost";
$dbuser = "*******";
$dbpass = "*******";
$db = "********";
$conn = new mysqli($dbhost, $dbuser, $dbpass,$db);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
mysqli_select_db($conn,$db);
date_default_timezone_set('Europe/Rome');
$date = date("Y-m-d G:i:s");
$code=$_REQUEST['code'];
$sql_u = "SELECT * FROM users WHERE code='$code'";
$res_u = mysqli_query($conn, $sql_u);
if (mysqli_num_rows($res_u) > 0)
{
echo "ALREADY EXISTENT $code";
}
else
{
$sql = "INSERT INTO users(code,used) VALUES ('$code','$date')";
if (mysqli_query($conn, $sql)) {
echo "SUCCESS $code";
} else {
echo "ERROR INSERTING $code";
}
}
mysqli_close($conn);
?>
如果您仔细查看Arduino代码的最后一部分,在myGsm.println(“at+HTTPACTION=0”)行下代码>和行myGsm.println(“AT+HTTPREAD=0,20”)代码>几乎所有其他SIM900示例都会使用一些延迟。。。我没有使用延迟,但在其他人的帮助下,我做到了,只要SIM900有输出,它就会打印出来,并以这种方式消除延迟。它适用于所有其他命令,但对于最后2个命令,它只是做一些随机的事情,我认为,因为它应该给我php文件的回音结果
现在看看我是否启用了两个延迟:
myGsm.println("AT+HTTPACTION=0"); //submit the GET request
delay(8000);//the delay is important if the return data are very large, the time required longer.
printSerialData();
myGsm.println("AT+HTTPREAD=0,20"); // read the data from the website you access
delay(3000);
printSerialData();
现在通过启用这两行,输出如下(正确):
你的问题到底是什么?你的标题暗示了mysql的问题,但你的描述暗示了另一个问题,这似乎已经被你的另一篇文章解决了。感谢社区的帮助,我设法不使用延迟,但现在的问题是,+HTTPACTION=0和+HTTPREAD=0,20的最后两个函数没有输出任何内容,因为在我看来,看起来他们需要更多的时间,我可以通过增加8000毫秒的延迟来解决这个问题,但是我们回到了我试图解决的第一个问题,那就是消除所有延迟。如何给命令足够的时间执行?我不知道他们什么时候接收完数据,这样我就可以输出数据了……这就是问题所在。
AT+CGATT=1
OK
AT+SAPBR=3,1,"CONTYPE","GPRS"
OK
AT+SAPBR=3,1,"APN","internet.wind"
OK
AT+SAPBR=2,1
+SAPBR: 1,3,"X.X.X.X"
OK
AT+SAPBR=1,1
OK
RFID Code: 172D9B32
AT+HTTPPARA="URL",http://mywebsite.000webhostapp.com/test.php?code=172D9B32
OK
AT+HTTPPARA="CID",1
OK
AT+HTTPACTION=0
OK
AT+HTTPREAD=0,20
OK
myGsm.println("AT+HTTPACTION=0"); //submit the GET request
delay(8000);//the delay is important if the return data are very large, the time required longer.
printSerialData();
myGsm.println("AT+HTTPREAD=0,20"); // read the data from the website you access
delay(3000);
printSerialData();
AT+CGATT=1
OK
AT+SAPBR=3,1,"CONTYPE","GPRS"
OK
AT+SAPBR=3,1,"APN","internet.wind"
OK
AT+SAPBR=2,1
+SAPBR: 1,1,"X.X.X.X"
OK
AT+SAPBR=1,1
OK
AT+HTTPINIT
OK
RFID Code: 172D9B32
AT+HTTPPARA="URL",http://mywebsite.000webhostapp.com/test.php?code=172D9B32
OK
AT+HTTPPARA="CID",1
OK
AT+HTTPACTION=0
OK
+HTTPACTION:0,200,16
AT+HTTPREAD=0,20
+HTTPREAD:16
SUCCESS 172D9B32
OK