感謝任何幫助,我做錯了什麼?未聲明的變量:$偏移動態變量設置OFFSET(mySQL,php)
$offset = 1;
$sql = 'SELECT * FROM links order by payout desc limit $offset, 1';
感謝任何幫助,我做錯了什麼?未聲明的變量:$偏移動態變量設置OFFSET(mySQL,php)
$offset = 1;
$sql = 'SELECT * FROM links order by payout desc limit $offset, 1';
嘗試:
$sql = 'SELECT * FROM links order by payout desc limit ' . intval($offset) . ', 1';
不要使用變量替換字符串中建立這樣的SQL查詢。它會創建SQL注入漏洞。
使用PDO或mysqli的,並提供變量數據,例如:
$pdo = new PDO(...);
$stmt = $pdo->prepare('SELECT * from links ORDER BY payout DESC LIMIT :offset, 1');
if ($stmt->execute(array(':offset' => $offset)) {
$row = $stmt->fetch();
}
你可以這樣做,如果你逃脫,在這種情況下,它是一個數字,所以只需使用intval。 – 2014-12-06 12:59:12
有一點要提的,看來你寫在單引號變量內聯,變量只能在雙引號認可
這不能是產生這個錯誤消息的實際代碼,因爲單引號不會有任何變量替換,你只需在'$ sql'中得到一個字面的'... limit $ offset,1'可變... – 2014-12-06 12:34:32
這不是我想要使用的代碼。但是這是給出錯誤的代碼。我不明白爲什麼它是一個未聲明的變量? – Daniel 2014-12-06 12:51:22