2015-09-25 125 views
1

我有这段代码插入一些来自一段时间,在数据库中的数据。我试图将jQuery serializearray和jQuery一起使用。但似乎我做了一些错误jQuery序列化并插入到mysql

$query= "SELECT * FROM barcode_prodotti"; 
$result = mysql_query($query) or die(mysql_error()); 
while($row=mysql_fetch_array($result)){ 
echo' 
    <input type="text" name="prodotto[]" class="prodotto" value="'.$row["prodotto"].'"></div> 
    <input type="text" name="prezzo[]" class="price" value="'.$row["prezzo"].'"> 
    <input type="text" name="quantita[]" class="price" value="'.$row["quantita"].'">'; 
    } 
    ?> 
    <script src="js/mine.js"></script> 
    <button>Serialize form values</button> 
    </form> 
    <div id="results"></div> 

这是我的jQuery代码我把mine.js

$(document).ready(function(){ 
$('form').submit(function(msg) { 
var mia =$(this).serialize(); 
$('#results').text(mia) 
alert($(this).serialize()); // check to show that all form data is being submitted 
$.post("testtest.php",$(this).serializeArray(),function(data){ 
    alert(data);      
}); 
return false; }); 
}); 

这是我的PHP文件(testtest.php)

mysql_connect("localhost","root",""); 
mysql_select_db("db"); 


$arr = $_POST; 

$sql="INSERT INTO table VALUES(
    '".$arr['prodotto']."', 
    '".$arr['quantita']."', 
    '".$arr['prezzo']."' 
)"; 

$rssql = mysql_query($sql); 
?> 

所以我序列化是好的(我试图分配一个值,看看它是否可以),但我不能在我的分贝值插入

+0

除了使用_deprecated_ mysql函数和你的代码倾向于SQL注入,你会得到什么确切的错误或意外的结果? – user5173426

+0

数据prodotto,prezzo和quantita不会进入名为表 – piccolopasticcio

+0

的mysql表是否尝试'echo $ arr ['prodotto'];'并且看到你在插入之前得到了什么? – user5173426

回答

1

您的INSERT查询在变量替换后最终看起来像这样。

INSERT INTO table VALUES('product', '123', '321') 

如果您的table正好有三列,这将工作正常。否则它会失败。您可能希望改为使用此查询。

INSERT INTO table (prodotto, prezzo, quantita) VALUES('product', '123', '321') 

它枚举你想要你的数据的列。

执行插入操作(以及任何查询后)后,应检查是否有错误。这可以用这样的代码来完成。

$res = mysql_query($q); 
if ($res === false) { 
    echo $mysql_error(); 
} 

注意哦:mysql_xxx()接口被从PHP中删除,一个很好的理由:它很容易受到网络罪犯。请尽快采用mysqli_xxx()PDO

1

做到这一点,最简单的方法:

<form id="myform" method="post"> 
<input type="text" name="prodotto" id="prodotto"> 
<input type="text" name="prezzo" id="prezzo"> 
<input type="text" name="quantita" id="quantita"> 
</form> 

jQuery是很简单太:

yourfile.php:

var datastring = $("#myform").serialize(); 

$.ajax({ 
type: 'POST', 
url: 'url/to/yourfile.php', 
data: datastring 
}).done(function(res){ 
var res = $.trim(res); //the ajax response. you can alert it or whatever... 
}); 

您可以在AJAX文件这样解析领域

<?php 
$product = mysql_real_escape_string($_POST["prodotto"]); 
$prezzo = mysql_real_escape_string($_POST["prezzo"]); 
$quantity = mysql_real_escape_string($_POST["quantita"]); 

//here you have the variables ready to add them as values to database 
$ins = "INSERT INTO table (prodotto, prezzo, quantita) VALUES('product', '123', '321')"; 
mysql_query($ins); 

?>