webForumDet fria alternativet

Lägg till sträng i mysql, OM den inte finns.

PHP

8 svar · 257 visningar · startad av NeoBlizz

Medlem sedan jan. 200351 inlägg
Frågan#1

Vill kunna lägga till en sträng i mysql-databasen om den inte redan finns där.

men får problem eftersom jag inte vet hur jag ska kolla ALLA redan dit-lagda stängar innan den får skriva.

Här är den felaktiga koden.

$meninblack = mysql_db_query("database","Select * From useragent Order By ID Asc");

$collect = $_SERVER["HTTP_USER_AGENT"];

while($agent = mysql_fetch_array($meninblack)) {
  if ($agent[agentstring] != $collect) {
    mysql_db_query("$database","INSERT INTO useragent (agentstring) VALUES ('$collect')");
  }else{
  }
}

Fråga mig inte varför jag vill samla in userAgent-strängar, jag bara vill det ;)

Medlem sedan aug. 20002 975 inlägg
#2

Testa det här:

$collect = $_SERVER["HTTP_USER_AGENT"];

$meninblack = mysql_db_query("database","Select COUNT(*) From useragent 
                                         WHERE agentstring=('$collect')");

if (mysql_result($meninblack, 0) == 0) {
  mysql_db_query("$database","INSERT INTO useragent (agentstring) 
                              VALUES ('$collect')");
}

Och en sak till. Angående mysql_db_query:

Note: This function has been deprecated since PHP 4.0.6. Do not use this function. Use mysql_select_db() and mysql_query() instead.

Källa: http://www.php.net/manual/en/function.mysql-db-query.php

Medlem sedan jan. 200351 inlägg
#3

Verkar fungera. :)

Och angående mysql_db_query: Tror jag kör med den för det då blir "en" rad med kod istället för två.

Medlem sedan aug. 20002 975 inlägg
#4

Bara så du förstår att endera dan som ditt webbhotell uppdaterar PHP så kommer dina skript inte att fungera. Om detta sker vid nästa uppdatering eller om 10 år vet jag inte, men det är förvarnat om att mysql_db_query ska försvinna från PHP.

Medlem sedan maj 2002647 inlägg
#5

Ojsan ojsan... det var bra att jag såg detta... dags att sätta sig och tänka om ;)

Medlem sedan jan. 200351 inlägg
#6

Matte..

Jag kör IIS + PHP 4.3.0 på min egen dator. och de webhotel jag skriver på kör Apache 2.0.43 med PHP 4.3.0, allt funkar ändå.

Borde det inte göra det menar du?

Medlem sedan aug. 20002 975 inlägg
#7

Jodå, men att funktionen är 'deprecated' innebär att den inte bör användas eftersom den kommer att försvinna i någon senare version av PHP. Om detta sker vid nästa uppdatering eller om det sker först många år framåt (troligtvis det senare), det vet jag inte, men det är säkrast att undvika sådana funktioner.

Medlem sedan jan. 200351 inlägg
#8

Jepp, har ändrar ALLA mina php-script till de du rekommenderade.

Så nu är de säkra på den biten i alla fall.

Så går det när böckerna man lär sig från är gamla. (php 4.0.6)

Medlem sedan jan. 2002341 inlägg
#9

mysql_db_query verkar inte fungera på de senaste versionerna av mysql, jag har haft problem med det..

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)