2011-11-25 32 views
-1

我认为这应该在理论上起作用。会吗?更新mysql_query表单cookie

$sql = "UPDATE users SET credtis = credits+1 WHERE id=echo .($_COOKIE['credits_id']!='');"; 
if (!($result = $db->sql_query($sql))) { 
    message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql); 
} 
+0

你为什么不试试呢? – Bojangles

回答

1

由于多种原因,您的语法不好。试着这样说:

$id = (!empty($_COOKIE['credits_id']) ? (int) $_COOKIE['credits_id'] : 0; 
$sql = "UPDATE users SET credtis = credits+1 WHERE id={$id}"; 
if (!($result = $db->sql_query($sql))) { 
    message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql); 
} 

另外,我假设message_die()是一些框架或API,您正在使用或您的自定义功能的一部分。否则,正确的功能是die(),它不会接受所有这些参数。

+0

?那是什么? –

+0

链接: 'www.site.com/affiliate/?id = 50' make cookie: '$ credits_id ='$ _GET [“id”];'; setcookie('credits_id',$ credits_id,time()+(3600 * 0.5)); // 3600 = 1小时' 更新db: '$ query =“UPDATE users SET credits + credits-1 WHERE id ='”。mysql_real_escape_string($ _ COOKIE ['credits_id'])。''“;' – kevin

+0

Remove '$ _GET'周围引号的不必要的(实际上是不正确的使用)。更改为:'$ credits_id = $ _GET ['id'];' –

0

你的语法不好:P
我纠正它:
$sql = "UPDATE users SET credits += 1 WHERE id='" . (isset($_COOKIE['credits_id']) && !empty($_COOKIE['credits_id']) ? $_COOKIE['credits_id'] : 0) . "'";
下面是一个更简单的版本:
$credits_id = 0;
if (isset($_COOKIE['credits_id']) && !empty($_COOKIE['credits_id']))
$credits_id = (int) $_COOKIE['credits_id'];
$sql = "UPDATE users SET credits += 1 WHERE id='" . $credits_id . "'";

综观=一部分,你要当cookie来返回一个值没有设置?

PS:
根据“hoi”,你是荷兰人吗?

+0

是的,我是荷兰人dank voor de info – kevin