Sql评级问题

时间:2015-05-04 16:40:26

标签: php sql database rating

这是我的代码。我的问题是,我希望插入仅在rating_airlines值介于15之间时发生,但它会不断添加所有值。

我的数据库中

rating_airlinesvarchar

<?php
    require_once('connect.php');

    mysql_select_db($database_localhost,$con);

    $nom_airlines=$_GET['nom_airlines'];
    $rating_airlines=$_GET['rating_airlines'];
    $a=intval($rating_airlines);

    if($a=1 || $a=2 || $a=3 || $a=4 || $a=5 ) {
        mysql_query("INSERT INTO Airlines(nom_airlines,rating_airlines)
        VALUES ('$nom_airlines','$a') ");

        echo "OK";}
    else {
        die('Requête invalide : ' . mysql_error());
    }
?>

2 个答案:

答案 0 :(得分:1)

您没有比较您正在设置的值。单等于设置双重比较。

if($a=1 || $a=2 || $a=3 || $a=4 || $a=5 )

应该是

if($a==1 || $a==2 || $a==3 || $a==4 || $a==5 )

但甚至可能

if($a>=1 && $a <=5 )

你也应该从mysql切换到mysqli或PDO。 mysqli or PDO - what are the pros and cons?

另请注意,通过将$nom_airlines直接传递给您的查询,您至少可以使用mysql_real_escape_string进行注射。

$nom_airlines=mysql_real_escape_string($_GET['nom_airlines']);

答案 1 :(得分:0)

您正在使用分配运算符。你需要在这里使用相等。

if($a==1 || $a==2 || $a==3 || $a==4 || $a==5 ) {

看看这两个:

Assignment Operators in PHP

Equality Operators in PHP

此外,

$a = $b     Assign      Sets $a to be equal to $b.
$a == $b    Equal       TRUE if $a is equal to $b.
$a === $b   Identical   TRUE if $a is equal to $b, and they are of the same type. (introduced in PHP 4)