2011-11-16 51 views
0

我正在處理奇怪的問題。從mysql表讀取問題

$result = mysql_query("SELECT link FROM item WHERE item_id='$id2'") or die(mysql_error()); 
$row = mysql_fetch_assoc($result); 
$picture = ''.$row['link'].''; 
echo"$picture"; 

給我造成http://127.0.0.1/1321426277.沒有結束,而在列link鏈接是:http://127.0.0.1/1321426277.jpg。爲什麼它減少結束?

+2

最後2行中的所有引用基本上什麼都不做......你知道嗎? – mpen

+0

檢查'link'列的長度到數據庫中,以及數據類型應該是一個varchar –

+0

我不確定要得到它,爲什麼要這樣做'$ picture =''。$ row ['link' ] ''。回聲「$圖片」,是不是更簡單:'echo $ row ['link']'? – user544262772

回答

1

出於測試目的,請執行

$result = mysql_query("SELECT link, Length(link) as l FROM item WHERE item_id='$id2'") or die(mysql_error()); 
$row = mysql_fetch_assoc($result); 
if (!$row) { 
    echo 'no such record'; 
} 
else { 
    $l = strlen($row['link']); 
    var_dump($l, $row['l'], $row['link']); 

    $picture = $row['link']; 
    echo "'$picture'"; 
} 

,併發布結果。

+0

結果是:int(0)string(2)「42」string(42)「http://127.0.0.1/baldai/akcija/1321428326」。 'http:// 127.0.0.1/baldai/akcija/1321428326.' – Lina

+0

我以某種方式懷疑至少'int(0)'部分。但無論如何,mysql服務器還「認爲」該字符串長度爲42個字符,而'http:// 127.0.0.1/baldai/akcija/1321428326.'爲42個字符。這個問題不在你的php腳本中。你怎麼知道「,而在列'鏈接'鏈接是:'http:// 127.0.0.1/1321426277.jpg'」?並檢查jogesh_p的評論。 – VolkerK

+1

我在其他地方使用它:'<?php echo''?>'它正在工作,所以我確信一切都適合mysql表。我認爲我太「金髮」,看不到明顯的東西,但現在我甚至不知道該怎麼想。 – Lina

1

我在代碼中看不到會導致鏈接被截斷的任何內容。你有沒有檢查過,以確保你的表格中有正確的數據?

+0

我也是!是的,數據是正確的,事實上我在其他地方使用'<?php echo''?>'它工作正常! – Lina

0

啊現在我明白了=問題是因爲你的代碼在'o'之後包含'r'而不是之前 - 現在已經很清楚了,因爲你提供了一個完整的行爲例子,我在我的機器上覆制。

WTF

+0

wtf ..............? –

1

它看起來像數據中的錯誤。在兩處打印(並選擇)ID(在您的問題中的查詢以及您在img src標記中使用它的其他地方)。我敢打賭他們會有所不同。或者,您應該檢查SELECT count(1)FROM item WHERE item_id ='xxx'*,其中xxx是魔法記錄的ID。