WebRequest общение с MySQL возможно ли и как ???

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Vladimir Pastushak
90532
Vladimir Pastushak  

WebRequest общение с MySQL возможно ли и как ???

П‌римеры работы как можно обратиться к базе через интернет ?

Igor Volodin
4195
Igor Volodin  
Vladimir Pastushak:

WebRequest общение с MySQL возможно ли и как ???

П‌римеры работы как можно обратиться к базе через интернет ?


Сделайте php прослойку в виде API. Отправляйте и принимайте данные. На стороне сервера выполняйте запросы.
Vladimir Pastushak
90532
Vladimir Pastushak  
Igor Volodin:

Сделайте php прослойку в виде API. Отправляйте и принимайте данные. На стороне сервера выполняйте запросы.

Можно пару простых примеров ?
Igor Volodin
4195
Igor Volodin  
Vladimir Pastushak:

Можно пару простых примеров ?

Хорошо, сделаю через часик-два, сейчас некогда
---
22802
---  
Vladimir Pastushak:

Можно пару простых примеров ?

в гугле просто немерянное количество материала.

<?php
$servername = "localhost:3306";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
    }
} else {
    echo "0 results";
}

mysqli_close($conn);
?>

Maxim Kuznetsov
12943
Maxim Kuznetsov  
Vladimir Pastushak:

WebRequest общение с MySQL возможно ли и как ???

П‌римеры работы как можно обратиться к базе через интернет ?

у MySQL помниться существует инсекурный плагин для REST.

Если нестрашно его поставить на базу - то почему-бы и нет, зато и кодить на стороне сервера ненадо :-)

---
22802
---  
Maxim Kuznetsov:

у MySQL помниться существует инсекурный плагин для REST.

Если нестрашно его поставить на базу - то почему-бы и нет, зато и кодить на стороне сервера ненадо :-)


http://mysqlserverteam.com/mysql-5-7-labs-inserting-updating-and-deleting-records-via-http/

https://labs.mysql.com/

MySQL 5.7 Labs — Inserting, Updating, and Deleting Records via HTTP
MySQL 5.7 Labs — Inserting, Updating, and Deleting Records via HTTP
  • 2015.05.05
  • Tony Darnell
  • mysqlserverteam.com
In the MySQL Labs version of MySQL version 5.7, there is a new HTTP plugin. The HTTP plugin documentation from the labs site provides this information (from MySQL Labs): The HTTP Plugin for MySQL adds HTTP(S) interfaces to MySQL. Clients can use the HTTP respectively HTTPS (SSL) protocol to query data stored in MySQL. The query language is SQL...
Rustamzhan Salidzhanov
7455
Rustamzhan Salidzhanov  

а зачем все это когда хватит и 8 строк кода ???

<?
//--- Конектимся к серверу
mysql_connect($_GET['server'], $_GET['user'], $_GET['password']) or die (mysql_error());
//--- Конектимся к базе
mysql_select_db($_GET['db_name']) or die (mysql_error());
//--- Указываем кодовую страницу
mysql_query("set character_set_client  ='utf8'");
mysql_query("set character_set_results ='utf8'");
mysql_query("set collation_connection  ='utf8_general_ci'");
//--- Делаем запрос к базе
$sql = mysql_query($_GET['query']) or die('error #'. mysql_errno() .' : '. mysql_error());
//--- Получаем ответ в формате JSON
header('Content-type: application/json; charset=utf-8');
echo json_encode($sql);

?>

‌SQL запрос формируем на стороне терминала [не забываем про экранирование кавычек]

Igor Volodin
4195
Igor Volodin  

Ну вот накидали уже примеров )) Конечно если не сильно переживать за безопасность, то можно и запросы строками слать.

А если по хорошему, то запросы нужно защитить, хотя бы через секретный ключ-свертку который в MQL-проге генерится на основе отправляемой строки и свертка проверяется на сервере.

<?
$salt = 'KFDNI(#(_)OMDLKNKJN';
$servername = "localhost:3306";
$username = "username";
$password = "password";
$dbname = "myDB";

$result = [];

$validate_key = isset($_POST['key']) && md5($salt.$_POST['query']) == $_POST['key'];

if ($validate_key) {

    //--- Конектимся к серверу
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    if ($conn) {
        mysqli_query($conn, "set names utf8");
        $result = mysqli_query($conn, $_POST['query']);
        if (!$result) {
            $result = ['error'=>mysqli_error($conn)];
        }
        mysqli_close($link);
    } else {
        $result = ['error'=>'Unable to connect to MySQL'];
    }
} else {
    $result = ['error'=>'Access forbidden'];
}

header('Content-Type: text/json; charset=utf-8');
echo json_encode($result);

?>
в MQL проге отправлять в поле key строку запроса зашифрованную с той же солью

md5 от @o_o  есть тут 

https://www.mql5.com/ru/code/1553
Mikhail Zhitnev
26834
Mikhail Zhitnev  

А кто-нибудь может выложить пример, как записать число A в таблицу Table через WebRequest ?

Вот пример на PHP

<html>
 <head>
   <title>Test of PHP</title>
 </head>
 <body>
 
<?php
  $mysqli = new mysqli("host", "User", "password", "database_name");
  if ($mysqli->connect_errno) 
  {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
  }  
  settype($a, 'integer');  
  $a = mt_rand(5, 15); 
  echo "Result: ",$a;a
  if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
      !$mysqli->query("CREATE TABLE test(id INT)") ||
      !$mysqli->query("INSERT INTO test(id) VALUES ($a)")) 
    {
      echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error; 
    }
  mysqli_close($mysqli);
?>

 </body>
</html>
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий