2013-07-18 49 views
0
$stmt = $connection->prepare("SELECT id FROM articles WHERE position =? LIMIT 1"); 
$stmt-> bind_param('i',$call); 
$stmt->execute(); 
$result = $stmt->fetch(); 
$oldpostid = $result; 
$stmt->close(); 

我沒有看到任何錯誤,但它返回1或沒有任何結果。 $call是設置和整數。我也試過這個:這個MySQL查詢有什麼問題嗎?

$stmt = $connection->prepare("SELECT * FROM articles WHERE position =? LIMIT 1"); 
$oldpostid = $result['id']; 
+0

'$ call'是什麼? –

+0

$ call是1-4之間的數字。我知道它正在工作。有趣的是我通過phpmyadmin發表了這個聲明,並且它完美地回來了。 – WackyMole

回答

3

假設這是所有的工作,你也需要綁定結果變量。 mysqli_stmt_fetch返回一個布爾值:

$stmt->execute(); 
$stmt->bind_result($id); 
$stmt->fetch(); 
$oldpostid = $id; 
+0

感謝您的建議,我認爲這會有所幫助。它是一個更大的代碼頁的一部分,所以我將集中在其他地方的代碼 – WackyMole

1

你似乎是混合的mysqli & PDO。第一行是PDO

$stmt = $connection->prepare("SELECT id FROM articles WHERE position =? LIMIT 1"); 

下一行是mysqli

$stmt-> bind_param('i',$call); 

應該是PDO代替保持器中的未命名變量Manual實施例4

$stmt-> bindParam(1,$call); 
$stmt->execute(); 

OR using array

$stmt->execute(array($call)); 
+0

事實上,我真的不知道其中的差別。我會調查! – WackyMole