0

これが可能かどうかはわかりませんが、これが私が達成しようとしていることです。

簡単なphpステートメントがあります:

$ID = mysql_real_escape_string(stripslashes($_POST['ID']));

$sqlApp = "SELECT * from apps WHERE appID = ".$ID;
$resultApp = mysql_query($sqlApp);
$rowApp = mysql_fetch_array($resultApp);

$fileName = $rowApp['fileName'];

私の ID 番号が 1 で、ファイル名が「mobi」であるとします。

このクエリで、自分の fileName を別の fileName と照合したいと考えています。

SELECT fileName, count(appId) as ct
FROM `apps`
GROUP BY filename
HAVING ct<2

私のファイル名「mobi」がこのクエリで見つかった場合、重複がないことをエコーし​​ます。私のphp変数をクエリと比較する方法はありますか? これが不可能な場合、この問題を解決する別の方法は何ですか? ありがとう!

4

4 に答える 4

0

あなたはそのようにすることができます:

$id = (isset($_POST['ID']) ? intval($_POST['id']) : 0);

$mysqli = new mysqli ('host', 'db_user', 'db_pwd', 'db_name');
$sql = 'SELECT fileName from apps WHERE appID = ?';
$fileName = '';
if ($statement = $mysqli->prepare($sql)) {
    $statement->bind_param('i', $id);
    $statement->execute();
    if ($result = $statement->get_result()) {
        $row = $result->fetch_assoc();
        $fileName = $row['fileName'];
        $result->free();
    }
    $statement->close();
}
$sql = 'SELECT COUNT(fileName) AS count
                FROM   apps
                WHERE  fileName = ?';
$count = 0;
if ($statement = $mysqli->prepare($sql)) {
    $statement->bind_param('s', $fileName);
    $statement->execute();
    if ($result = $statement->get_result()) {
        $row = $result->fetch_assoc();
        $count = $row['count'];
        $result->free();
    }
    $statement->close();
}
$mysqli->close();

if ($count == 1) {
    echo 'The file '.$fileName.' has no duplicates';
}
于 2013-07-26T20:11:35.417 に答える