У меня есть код im, пытающийся загрузить данные, считываемые с двух датчиков, в arduino на сервер WAMP, но при запуске localhost\project я получаю, что файл Warning.THE php находится в каталоге проектов. Connect.php используется, когда доступ к базе данных. Код Connect.php - это тот, который используется, главным образом, для соединения здесь, а процесс add.php POST из arduino.index.php отображает значения датчиков в таблице:
Ниже приведен Connect.php
****<?php
function Connection(){
$server="server";
$user="user";
$pass="pass";
$db="database";
$connection = mysqli_connect($server, $user, $pass);
//$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'user', 'pass');
if (!$connection) {
die('MySQL ERROR: ' . mysql_error());
}
mysql_select_db($db) or die( 'MySQL ERROR: '. mysql_error() );
return $connection;
}
?>****
Ниже приведена add.php:
**<?php
include("connect.php");
$link=Connection();
$temp1=$_POST["temp1"];
$hum1=$_POST["hum1"];
$query = "INSERT INTO 'tempLog' ('temperature', 'humidity')
VALUES ('".$temp1."','".$hum1."')";
mysql_query($query,$link);
mysql_close($link);
header("Location: index.php");
?>**
lastly index.php:
**<?php
include("connect.php");
$link=Connection();
$result=mysql_query("SELECT * FROM 'tempLog' ORDER BY 'timeStamp' DESC",$link);
?>
<html>
<head>
<title>Sensor Data</title>
</head>
<body>
<h1>Temperature / moisture sensor readings</h1>
<table border="1" cellspacing="1" cellpadding="1">
<tr>
<td> Timestamp </td>
<td> Temperature 1 </td>
<td> Moisture 1 </td>
</tr>
<?php
if($result!==FALSE){
while($row = mysql_fetch_array($result)) {
printf("<tr><td> %s </td><td> %s </td><td> %s </td></tr>",
$row["timeStamp"], $row["temperature"], $row["humidity"]);
}
mysql_free_result($result);
mysql_close();
}
?>
</table>
</body>
</html>**
Попробуйте либо использовать mysqli_select_db с правильными параметрами, как это
$connection = mysqli_connect($server, $user, $pass);
if (!$connection) {
die('MySQL ERROR: ' . mysql_error());
}
mysql_select_db($connection,$db) or die( 'MySQL ERROR: '. mysql_error() );
return $connection;
Или используйте mysqli_connect()
чтобы также выбрать базу данных, добавив ее как 4-й параметр, затем вы можете полностью забыть mysql_select_db()
.
$connection = mysqli_connect($server, $user, $pass, $db);
if (!$connection) {
die('MySQL ERROR: ' . mysql_error());
}
Вы mising mysqli_ и mysql_ (это не то же самое..)
Соединение возвращает соединение mysqli_
:
$connect = mysqli_connect($server, $user, $pass);
Но вы пытаетесь использовать его для выбора db и запроса через mysql_
:
mysql_select_db($db) or die( 'MySQL ERROR: '. mysql_error() );
Кроме того, использование mysqli_
соединения в качестве ссылки на mysql_
запрос не имеет смысла:
$link=Connection();
$result=mysql_query("SELECT * FROM 'tempLog' ORDER BY 'timeStamp' DESC",$link);
Пожалуйста, просто взгляните на документы mysqli и mysql_
код mysql_
. - Или даже лучше, используйте PDO !
$server
фактически быть разрешен сервером? Возможно, попробуйте вместо этого использовать IP-адрес, если у вас возникла проблема с именем хоста, но убедитесь, что имя хоста является действительным. Если имя хоста верное, убедитесь, что настройки DNS на сервере верны.