我的第一篇文章在這裏。我有一個mysql表, - InnoDB - latin1-bin 大約有300行/ 9列。這是一個合唱庫,所以大多數列都是varchar,除了自動遞增的鍵索引列。很像一本書集合;標題,作者,作曲家等mysql結果在這裏被截斷,但不存在
在CMS中有兩種類型的視圖,列表視圖和記錄視圖。它們非常像桌面應用程序中的典型列表和記錄視圖,例如Lotus Approach或MS Access。
列表視圖建立在包含標題(th),行(tr)和數據(td)的表上。每頁30個結果。記錄視圖建立在文本輸入上,可以修改數據,創建/刪除記錄或搜索記錄,並且一次只顯示一條記錄。
問題是在列表視圖中包含字幕(雙引號字符串)的標題不會被截斷,並且數據完美顯示(來自「聖塞西莉亞彌撒」的Santus和Bendictus)。
echo "<td class='whiteData'>$row[TITLE]</td>";
然而,在文本輸入相同的代碼無法正常工作: 允許轉義字符,代碼更改爲:
echo "<input type='text' name='title' id='title' value= \"$row[TITLE]\" style='width:390px; margin-right:150px; maxlength:75; margin-top:15px' />";
產量「Santus和本尼迪塔斯從」。請記住,第一個代碼片段來自索引視圖,第二個代碼片段來自瀏覽/編輯視圖。我試過其他組合如:
...'$row[TITLE]' or $row["TITLE"] or $row['TITLE']
最後兩個語句中的任何一個拋出php錯誤,只是殺死頁面。帶雙引號的轉義字符產生一切直至雙引號。用單引號括住這個表達可以糾正這個問題,但是隨後會在標題「上帝的奇妙的愛」中產生另一個問題,在這個標題中,它被截斷爲撇號。同樣,問題只存在於記錄視圖(文本輸入)上,而不存在於表格上(列表視圖)。
我的問題:爲什麼行爲上的差異?數據不會被查詢截斷。我知道我可以簡單地指導用戶不要使用雙引號字符串,這似乎解決了問題。但我只是覺得好奇。
希望我沒有遺漏任何東西。第一篇文章不允許我張貼圖片,所以我希望沒有任何內容不存在。
謝謝。
考慮添加更多代碼(視圖函數/文件和控制器)。也許controll不會傳遞這些數據,或者它會通過一個名爲$ row的變量傳遞它。 – 2012-02-25 17:53:53
只是嘗試了一個普通的舊回聲,而不是一個輸入和工作正常,但它仍然在文本輸入截斷。 – jazcam 2012-02-25 18:57:21