PDA

View Full Version : Warning: odbc_exec() = مشکل در کوئری



amirlord
چهارشنبه 13 مهر 1390, 17:47 عصر
با سلام خدمت همگی دوستان . به دلیل مسایلی مجبور شدم برای یک اسکریپت PHP از دیتابیس ODBC ( اکسس ) استفاده کنم . بگذریم . هیچ کجا مشکل ندارم به جز یک جا !!! کد زیر رو نگاه کنید :


session_start();
if(!isset($_SESSION['username']))
{
header('LOCATION: index.html');
die("Forbidden");
}

$ID = $_GET['ID'];
$Passwd = $_GET['Passwd'];

$sql = "INSERT INTO TAC_USR (TAC_ID, TAC_Attr, TAC_Val) VALUES('$ID', '[Global]Passwd', '$Passwd')";

$rs = odbc_exec($conn,$sql);
odbc_close($conn);

ارور :

Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC Microsoft Access Driver] The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again., SQL state 23000 in SQLExecDirect in C:\*******.php on line 21
خط 21 :

$rs = odbc_exec($conn,$sql);
با تشکر قبلی از همگی عزیزان .

blackmak
چهارشنبه 13 مهر 1390, 18:13 عصر
فکر کنم تو اکسس ستون id رو AUTO_INCREMENT نذاشتی من اکسس ندارم وگرنه تست می کردم

blackmak
چهارشنبه 13 مهر 1390, 18:18 عصر
The changes you requested to the table were not successful because they would create duplicate values in the index (http://social.msdn.microsoft.com/forums/en-US/vbgeneral/thread/7369dc6c-0041-49ae-8a02-a7c66e5644dc)

اینم ببین:

You may receive an error message when you try to insert a new record in a table that contains an Autonumber field in Access 2007 or in Access 2003 (http://support.microsoft.com/kb/884185)

amirlord
چهارشنبه 13 مهر 1390, 18:59 عصر
فکر کنم تو اکسس ستون id رو AUTO_INCREMENT نذاشتی من اکسس ندارم وگرنه تست می کردم
دادا ستون id اتوماتیک نیست !!

The changes you requested to the table were not successful because they would create duplicate values in the index

اینم ببین:

You may receive an error message when you try to insert a new record in a table that contains an Autonumber field in Access 2007 or in Access 2003
خیلی از مراجع انگلیسی رو مشاهده کردم و به مشکل من مربوط نبود !! قبلا با این مشکل روبرو شده بودم اما یادم نیست چجوری حلش کردم !!! :لبخند: البته جالب اینجاست قبلا با همین کد کار میکردم و مشکلی نداشت چند روزه ارور میده !!!!! :لبخند:

amirlord
چهارشنبه 13 مهر 1390, 20:06 عصر
دوستان من خیلی عجله دارم و کارم خیلی خیلی گیره . لطفا اگر کمکی از دستتون بر میاد دریغ نکنید . با تشکر از شما

blackmak
چهارشنبه 13 مهر 1390, 22:53 عصر
کن اکسس رو سیستمم نیست وگرنه حتما تست میکردم برات :ناراحت:

amirlord
پنج شنبه 14 مهر 1390, 09:09 صبح
آیا دوستان نمونه کدی برای ایجاد رکورد در ODBC دارند که تست کرده باشند و مشکلی نداشته باشه ؟؟؟ ( خیلی گیرم به خدا )

amirlord
پنج شنبه 14 مهر 1390, 09:50 صبح
آیا دوستان فکر نمی کنند شاید مشکل از لوکال من باشه ؟؟؟؟ الان کد زیر رو نگاه کنید :

<?php

$conn = odbc_connect("***", "admin", "admin");
//create sql insert statement
$sql = "INSERT INTO TAC_USR (TAC_ID, TAC_Attr, TAC_Val) VALUES('amir', 'amir', 'amir')";

//execute query
$result = odbc_exec($conn, $sql);

odbc_close($conn);


?>
عملا این نباید مشکلی داشته باشه . اما ارور :


Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC Microsoft Access Driver] The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again., SQL state 23000 in SQLExecDirect in C:\***\1.php on line 8