Mysql Slim API,没有';连接后不能工作
我正在尝试制作一个API。我已经按照Open教室中的教程使用MySQL发出请求,我想要一个使用Slim v3.2的API。 所以我收到了连接的答案,但当我想从get恢复数据时,我遇到了一个“Slim Application Error”,我不知道该怎么办。 我使用MAMP而不是“php-S localhost:8080-t public/index.php”,因为我与数据库有良好的连接。 我向您展示我的API:Mysql Slim API,没有';连接后不能工作,mysql,api,pdo,get,slim,Mysql,Api,Pdo,Get,Slim,我正在尝试制作一个API。我已经按照Open教室中的教程使用MySQL发出请求,我想要一个使用Slim v3.2的API。 所以我收到了连接的答案,但当我想从get恢复数据时,我遇到了一个“Slim Application Error”,我不知道该怎么办。 我使用MAMP而不是“php-S localhost:8080-t public/index.php”,因为我与数据库有良好的连接。 我向您展示我的API: <?php use \Psr\Http\Message\ServerReque
<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
require '/Users/kravennagen/Downloads/Api/api/racehistory/vendor/autoload.php';
$app = new \Slim\App();
echo "hello";
try{
$bdd = new PDO('mysql:host=localhost;dbname=racehistory;charset=utf8', 'root', 'root', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
echo "connexion...";
}
catch(Exception $e){
die('Erreur connexion BDD:' . $e->getMessage());
}
echo "avant le get";
$app->get('/', function(){
$reponse = $bdd->query('SELECT * FROM user');
while($data = $reponse->fetch()){
echo $data['mail'];
echo $data['password'];
}
$reponse->closeCursor();
});
$app->get('/connexion/{identifiant}/{password}', function($login, $pass){
$reponseMail = $bdd->query('SELECT mail FROM user');
$reponsePass = $bdd->query('SELECT password FROM user');
echo "test1";
While($donnees = $reponseMail->fetch() && $donnees = $reponsePass->fetch()){
if($donnees['mail'] == $login && $donnees['password'] == $pass){
echo "true";
//return true;
}
else{
echo "false";
//return false;
}
}
$reponsePass->closeCursor();
$reponseMail->closeCursor();
});
$app->get("/register/{identifiant}/{password}", function($login, $pass){
$add = 'INSERT INTO user(mail, password) VALUES ($login, $pass)';
if(!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $login))
$errors['mail'] = 'adresse mail non valide';
else if (!preg_match("#^(?=.*[A-Z])(?=.*[a-zA-Z])(?=.*\d)([\w]{8,15})$#", $pass))
$errors['password'] = "le mot de passe n'est pas conforme(majuscule au debut, de 8 a 15 caractères)";
else if($bdd->exec($add) === false){
echo "ERREUR INSERTION";
}
else{
echo "User bien ajouté la base de donnée";
}
});
$app->run();
?>
您必须使用“use”将$bdd连接对象注入路由:
$app->get('/', function() use ($bdd) {