PDA

View Full Version : سوال: Exclamation آیا تعداد متغییر ها و مقادیر در یکبار INSERT کردن محدود است؟



bijan_8k
پنج شنبه 04 آذر 1389, 00:06 صبح
من یک صفحه ی HTML دارم که مقادیر بیش از 100 فیلد را به یک صفحه ی PHP (که کدش رو در زیر آوردم) جهت ذخیره در دیتابیس ارجاع میده.
به دلیل تعداد زیاد متغیرها و مقادیر تصمیم گرفتم که به جای روش مرسوم $_GET از دکود کردن URL متغیرها و مقادیرشون رو استخراج کنم. این مرحله ی کار درست انجام میشه. مشکل اینجاست که این متغیرها و مقادیر بعد از قرار گرفتن در قالب کوئری، در دیتابیس ذخیره نمیشن!
برای اطمینان حاصل کردن از صحت کوئری چاپ هم کردم و از صحتش اطمینان حاصل شد. لازم به ذکره که وقتی به صورت دستی از همین صفحه اقدام به ذخیره در دیتابیس میکنم این کار بدون مشکل انجام میشه. تنها شکی که میمونه اینه که آیا کوئری INSERT نمیتونه همزمان این تعداد مقدار متغیرها رو در دیتابیس ذخیره کنه؟!

به شدت محتاج یاریتونم!
پیشاپیش ممنون



این هم کد صفحه ی PHP:

__________________________________________________ ________



<?php
include('connection.php');
function curPageURL() {
$pageURL = 'http';
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}


$GETString=substr(curPageURL(), strripos(curPageURL(),'ok&')+strlen('ok&'));
$fields = explode('&', $GETString);$value="";$variables="";$upset="";
foreach($fields as $sets){
$sets = explode('=', $sets);
$var=htmlspecialchars(urldecode($sets[0]));
$val=htmlspecialchars(urldecode($sets[1]));
// echo $var.": ".$val."<br>";
$values .= "'".$val."', ";
$variables .= $var.", ";
$upset .= $var."='".$val."', ";

}

$values .="'1'";$variables.="_Tracker";$upset .="_Traker='1'";
if($_GET['action']=='update')
{

}else{
$query="INSERT INTO data ($variables) VALUES ($values)";
}
mysql_select_db('report', $con);
mysql_query($query,$con);
echo $query;
?>



__________________________________________________ ________
Connection.php:



<?php
$con = mysql_connect("localhost","root","");
?>

funpatogh
پنج شنبه 04 آذر 1389, 00:19 صبح
یکی از معایب ارسال با get همین محدودیت کاراکتر های URL هست فکر نمیکنم بشه با get مقادیر 100 تا فیلد رو ارسال کرد
این خط رو هم به این شکل کنید که اگر خطایی میدهد مشاهده کنید


mysql_query($query,$con)or die(mysql_error());