webForumDet fria alternativet

Går inte att spara i en databas, men funkar i en annan

Databaser & SQL

7 svar · 1 271 visningar · startad av Thompa__85

Medlem sedan aug. 2002600 inlägg
Frågan#1

Hej Wf!

Jag har fått ett problem som jag inte kan förstå vad tusen jag ska göra för att lösa det hela.

Jag har ett script som ska spara inlägg i en databas. Men den vägrar att spara.
Väljer jag däremot att köra exakt samma script, på samma server å allt men peka mot en annan databasserver så fungerar det felfritt.

Tabellerna är skapade på exakt samma sätt via en sql-kod.
Scriptet är exakt detsamma. Enda skillnaden är alltså att mysql ligger på olika servrar.

Det är inte fel på själva kopplingen för jag kan läsa in inläggen, tabort inlägg osv. Det är alltså bara när jag kör insert into det inte fungerar.
Den skriver dessutom inte ut några felmeddelanden :/

Så här är min kod:

class Wall {

	public function PublishToWall( $Post = "", $posted_on, $user_id = 0, $title = "", $url = "", $description = "", $cur_image = "", $post_type = 0, $videoType = 0, $youtube = "", $media=0, $tagged=false ) 
	{	
		$Post  	= $this->filterData( $Post );
		$title 	= $this->filterData( $title );
		$description = $this->filterData( $description );
		$url 	= $this->filterData( $url );
		
		$tagged_array=explode(',',$tagged);
		$tags=implode(',', $tagged_array);
		
		mysql_query("INSERT INTO wallposts (post,userid,date_created,posted_by,title,url,description,cur_image,post_type,value,youtube,media,tagedpersons) VALUES('".$Post."','".$posted_on."','".strtotime(date("Y-m-d H:i:s"))."','".$user_id."','".$title."','".$url."','".$description."','".$cur_image."','".$post_type."','".$videoType."','".$youtube."','".$media."','".$tags."')");
	}

Det bör ju inte vara något fel på koden egentligen eftersom den fungerar felfritt om jag byter mysql-koppling...

Är det någon som varit med om något liknande tidigare? Hur löste ni det?

Är det något jag kan göra för att felsöka? Jag har försökt med allt jag kan..

Tusen tack för alla svar!

Mvh
Andreas

Medlem sedan okt. 201187 inlägg
#2

Har du kolla vilka rättigheter som databasanvändaren har som du använder dig av för att koppla upp dig mot databasen.?
Har du provat att trycka in posten "by hand" i en hjälp av en sql klient.?
Så hade i alla fall jag börjat
/Hasse

Medlem sedan aug. 2002600 inlägg
#3

berken skrev:

Har du kolla vilka rättigheter som databasanvändaren har som du använder dig av för att koppla upp dig mot databasen.?
Har du provat att trycka in posten "by hand" i en hjälp av en sql klient.?
Så hade i alla fall jag börjat
/Hasse

Det är samma databaskoppling som jag använder på andra script och då kan man spara i databasen, så rättigheterna ska vara OK.

Körde en förenklad insert into via en sql-klient:

INSERT INTO wallposts (post,userid,date_created,posted_by,title,url,description,cur_image,post_type,value,youtube,media,tagedpersons) VALUES('".$Post."','1','1331162864','3','".$title."','".$url."','".$description."','".$cur_image."','0','0','".$youtube."','0','".$tags."');

Det fungerade. Så vad drar jag för slutsats av det?

Medlem sedan okt. 201187 inlägg
#4

Du behöver köra den kompletta insertfrågan som inte fungerar med samma inloggnin i samma databas.
Nu vet jag inte vilken miljö du kör i men om det är ett webbhack så lägg en display på skärmen som du kan kopiera och klippa in i din sqlklient för att se om det fungerar.
Fört gäller det att reda ut om inserten fungerar och gör den det så gäller det att reda ut om frågan faktiskt utförs

Medlem sedan juni 20006 031 inlägg
#5

Thompa__85 skrev:

...
Den skriver dessutom inte ut några felmeddelanden :/
...

Lägg till mysql_error() så den skriver ut felmeddelandet.

Medlem sedan juni 20004 308 inlägg
#6

Thompa__85 skrev:

Det är samma databaskoppling som jag använder på andra script och då kan man spara i databasen, så rättigheterna ska vara OK.

Andra script som du kör på samma server? Och de andra scripten skriver till samma tabell? (wallposts)

Anledningen att jag frågar är att användare kan ha 1 uppsättning rättigheter om anropet kommer från 1 IP, och en annan från ett annat IP. Och det låter onekligen som rättighetsfel.

Medlem sedan mars 20034 471 inlägg
#7

Det är inte så att det kan bero på olika versioner av MySQL-databasen så att kommandot INSERT INTO finns på den ena men inte den andra?

Medlem sedan feb. 20126 inlägg
#8

Gör en enkel test med tex INSERT INTO users (userId) VALUES (22);
Då vet du att de går/inte att spara i db.
Går det, betyder det att även om det gick i den andra db, så finns det fel ditt script.

259 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)