php - 检查mysql行是否存在无效

时间:2013-05-08 15:12:54

标签: php mysql

我有一个脚本需要检查是否存在mysql行。如果确实如此,它必须采取行动。如果它没有,那么它必须做一些不同的事情......如果确实存在它会正常工作,但是当它没有时它会向我的ajax返回一个错误:

Unknown column '100005075040249' in 'field list'

'100005075040249'是$ friend下面的值

继承我的PHP代码:

$connection = mysql_connect("$host", "$username", "$password") or die(mysql_error()); 

$sql_result = mysql_query("SELECT `FB_ID` FROM `lavender`.`Players` WHERE FB_ID =  `$friend`");

if(is_resource($sql_result) && mysql_num_rows($sql_result) > 0 ){
    $rec = mysql_query("SELECT Recieved FROM `lavender`.`Players` WHERE FB_ID = `$friend`");
    $rec = $rec['Recieved'];
    if($rec == 0){
        mysql_query("UPDATE `lavender`.`Players` SET `count` = `count`+1, `total` = `total`+1, `Recieved` = 1 WHERE FB_ID= `$friend`");
    };

    echo "inserted into old row";
}else{
    mysql_query("INSERT INTO `lavender`.`Players` (`FB_ID`, `count`, `total`, `Recieved`) VALUES (`$friend`, `1`, `1`, `1`);") or die(mysql_error());

    echo "made new row";
};

我尝试检查行是否在Zero之上,但它返回相同的错误。

2 个答案:

答案 0 :(得分:1)

在SQL语句中删除$ friend上的撇号/反引号。

答案 1 :(得分:1)

无论代码出现什么问题(使用

'$friend'

不是

`$friend`

同样适用于您的1fetch您的实际行...)您可以在1个查询中执行此操作,前提是您在FB_ID上有一个UNIQUE索引,这也可以避免竞争条件 - :

INSERT INTO `lavender`.`Players` 
  (`FB_ID`, `count`, `total`, `Recieved`) 
  VALUES 
  ('$friend', 1, 1, 1)
ON DUPLICATE KEY UPDATE
  `count` = IF(received, `count`,`count`+1),
  `total` = IF(received, `total`,`total`+1),
  received = 1;