0
我有這樣的代碼,添加文本框動態轉義字符問題
row_no=0;
function addRow(tbl,row){
row_no++;
if (row_no<=20){
if (row_no>=10){
var textbox = '';}
if (row_no<10){
var textbox = '';}
var textbox2 = '';
var tbl = document.getElementById(tbl);
var rowIndex = document.getElementById(row).value;
var newRow = tbl.insertRow(row_no);
var newCell = newRow.insertCell(0);
newCell.innerHTML = textbox;
var newCell = newRow.insertCell(1);
newCell.innerHTML = textbox2;
var newCell = newRow.insertCell(2);
}
if (row_no>20){
alert ("Too Many Items. Limit of 20.");
}
HTML代碼
和PHP代碼後的數據爲<div style="padding-top:30px;"> <input type="button" name="Button" class="button" value="Add Ingredient" onClick="addRow('table1','row1')" /> <table style="padding-left:160px" width="600" border="0" cellspacing="0" cellpadding="2" id="table1"> <th><center>Ingredient <th>amount </center> <tr id="row1"> </tr> </table> </div>
$ingredient = $_POST['ingredient'];
$amount = $_POST['amount'];
$integer = 0;
$ingredient=mysql_real_escape_string($ingredient);
$amount=mysql_real_escape_string($amount);
while (count($ingredient)>$integer) {
if (($ingredient[$integer] <> "") && ($amount[$integer] <> "")){
$sql = "INSERT INTO cafe
.ingredients
(ingredient_name
, ammount
, rec_id
)
VALUES ('".$ingredient[$integer]."', '".$amount[$integer]."', '$rec_id')" ;
echo "the echo value is".$ingredient[$integer]."and the error is below
";
mysql_query($sql) or die(mysql_error());
}
else{
echo "ingredient number ".($integer+1)." is missing values and cannot be inserted.";
}
$integer = ($integer + 1);
}
我的問題是當我使用轉義字符,即(')或(「)併發布數據在PHP腳本其確定但當我插入這個數據到MySQL,那麼它會給我錯誤
警告:mysql_real_escape_string()期望參數1是字符串,數組在/var/www/book/books.php上123行
感謝答覆,但這個給我的錯誤您的SQL語法錯誤;檢查對應於你的MySQL服務器版本的手冊,在第二行使用's','64')'。' – hunter 2010-12-15 09:59:33
@hunter:你能告訴我們var_dump($ sql)的輸出嗎? – RageZ 2010-12-15 10:02:00
RageZ thnks非常有效,現在.... ....但在我的代碼中的另一個問題,你可以看到它動態地生成兩個文本框(成分,數量),如果我想添加另一個動態文本框即指令,那麼我應該在javascript中做另一個指令函數......? – hunter 2010-12-15 10:17:36