0

私は PHP と SQL が初めてで、SQL クエリが少なくとも 1 つの結果を返す場合に true を返す関数を作成しようとしています。

私がこれまでに持っているのは

function isNew($canNum)
  {
  connectToDatabase();

   SELECT COUNT(*) as cnt FROM
   FROM 'cans' c
   WHERE c.date >= DATE_SUB(NOW(), INTERVAL 1 DAY)
   AND c.canId = '$canNum';

  disconnectDatabase();
  //return true if above returns a row

  disconnectDatabase();
  }

カウントは < 比較を行うことができるphp変数ではないため、私の質問はリターンを行う方法です。

4

5 に答える 5

1
function isNew($canNum)
  {
if (count(mysql_fetch_assoc(mysql_query("
   SELECT COUNT(*) as cnt FROM
   FROM 'cans' c
   WHERE c.date >= DATE_SUB(NOW(), INTERVAL 1 DAY)
   AND c.canId = '$canNum';
")))>0)
{
return true;
}
else
{
return false;
}
  }
于 2013-05-10T02:49:17.773 に答える
1

コードでこれらのphp関数のいずれかを使用する必要があるかもしれません

<?php

$q = mysql_query("your query here!")

if($q = mysql_num_row() > 1 ){
//your code
}

?>
于 2013-05-10T02:50:45.843 に答える
1
<?php
    function isNew($canNum)
    {
    $con=mysqli_connect("localhost","UID","PSW","DB"); //Db connection
    //connectToDatabase();

    $sql="SELECT COUNT(*) as cnt FROM 'cans' c WHERE c.date >= DATE_SUB(NOW(), INTERVAL 1 DAY) AND c.canId = '$canNum'";
    $result = mysqli_query($con,$sql);
    $count_1=mysqli_fetch_array($result);
    $count=$count_1['cnt'];
    // disconnectDatabase();
    //return true if above returns a row
    mysqli_close($con);
    //  disconnectDatabase();
    return $count; //returns count you can modify it the way you want
}

    echo "Current count is ".isNew(10);
?>
于 2013-05-10T02:57:26.540 に答える
1

あなたのコードは PHP コードのようには見えません! これを試して:

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}

$number=mysql_num_rows(mysql_query("SELECT `canId` FROM `cans` WHERE `date` >= DATE_SUB(NOW(), INTERVAL 1 DAY) AND `canId` = '$canNum';"));

if($number>0){
  // do what you want to do
}

mysql_close($con);
于 2013-05-10T02:58:37.537 に答える
0

他の回答で提案されているように mysql_query の使用を避け、mysqli_queryまたはPDOを調べてください。PDO を使用すると、次のようなことができます。

function isNew($canNum){
  $db = new PDO();
  $statement = $db->prepare('....your query... WHERE canID=:canID');
  $statement->bindParam(':canID', $canNum);
  $statement->execute();
  if($result = $statement->fetch()){
     //exists
     return true;
  } else {
     return false;
  }
}

また、SQL インジェクションも回避できます。

于 2013-05-10T03:06:37.317 に答える