0

現在、データベースなどを扱っています。あるページでは、コードは次のようになります。プリペアド ステートメントの実行方法は知っていますが、このクエリを変更する方法や、bind_param や bind_result などに何を入れるかを (頭の中で) 理解できません。

どんな助けでも大歓迎です。これが私のコードです:

$topDate = date('Y-m-d', strtotime('-1 week'));
$query = "SELECT *, DATEDIFF(ends, starts) as datedifference FROM news WHERE DATEDIFF(starts,'$topDate')>0 ORDER BY starts LIMIT 12;";
if ($result = mysqli_query($connection, $query)) {
    while ($row = mysqli_fetch_assoc($result)) {
        //What i do with my data
    }
}
4

1 に答える 1

0

準備されたステートメントを使用するための+1。

準備されたステートメントとしてのコードの例を次に示します(テーブル構造がどのように見えるかわからないことに注意してください):

$connection = new mysqli(HOST,USER,PASSWORD,DATABASE);
$stmt = $connection->prepare("SELECT *, DATEDIFF(ends, starts) as datedifference FROM news WHERE DATEDIFF(starts,?)>0 ORDER BY starts LIMIT 12;");
$stmt->bind_param('s', $topDate);
$stmt->execute();
$stmt->bind_result($col1, $col2, $col3, $col4) //...etc, the number of variables here must match the column count;
if($stmt->num_rows > 0)
{
    while($stmt->fetch())
    {
        print("col1 = " . $col1, "col2 = " . $col2,"col3 = " . $col3,"col4 = " . $col4);
        //will bind the rows results to the $col variables on every pass.
    }



}

$stmt->close();
于 2013-11-11T20:38:00.483 に答える