0
votes

Comment insérer la date à l'aide de PHP dans la requête MySQL?

Ce que j'essaie de faire est d'obtenir la date d'entrée de HTML, exécutez une requête en utilisant cette date. Mais je n'arrive pas à comprendre quel est le problème, je fais tout ce que tout va bien (ou suis-je?)

Voici quelques index de code.php p>

// get the q parameter from URL


$servername = "localhost";
$username = "root";
$password = "";
$dbname = "chaska";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
$input_date=$_REQUEST['q'];
$date=date("Y-m-d",strtotime($input_date));
$sql = "SELECT `tec_sale_items`.product_name, `tec_sales`.date, sum(`tec_sale_items`.quantity) AS sum FROM `tec_sale_items` LEFT JOIN `tec_sales` ON `tec_sale_items`.sale_id = `tec_sales`.id WHERE DATE(`tec_sales`.date) = $date AS DATE group by `tec_sale_items`.product_name, DATE(`tec_sales`.date)";
$result = $conn->query($sql);
echo $date;
if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "product: " . $row["product_name"]. " - Quantity: " . $row["sum"]. " ". "<br>";
    }
} else {
    echo "0 results";
}
$conn->close();
?>


0 commentaires

3 Réponses :


0
votes

Qu'est-ce que vous avez fait, c'est le droit xxx

mais utilisez du texte au lieu de date


0 commentaires

1
votes
WHERE DATE(`tec_sales`.date) = '$date'

1 commentaires

Ce n'est pas parce que cette valeur est sûre, cela ne signifie pas que vous pouvez l'injecter dans la requête SQL. Vous devriez viser à utiliser des déclarations préparées 100% du temps.



2
votes

Ce qui suit est une syntaxe SQL illégale pour deux raisons; Il manque des citations autour de la variable $ (qui est une chaîne) et vous essayez de lui donner un alias (tout ce que vous faites est comparant deux valeurs, donc aliasing a peu de sens ici). < Pré> xxx

Vous devez également utiliser une instruction préparée avec MySQLI, comme indiqué ci-dessous. L'utilisation d'une déclaration préparée signifie que vous n'avez plus besoin de vous soucier de cibler vos variables. xxx


0 commentaires