INSERT ????
Ik probeer al de hele tijd wat waardes in mijn tabel te voegen maar het lukt niet. Hij geeft geen foutmelding weer maar er gebeurt eigenlijk niks.
dit is de code:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
$db_handle = mysql_connect($server, $user_name, $password);
$db_found = mysql_select_db($database, $db_handle);
mysql_query ("INSERT INTO users_reeksen (user_id, vierkleuren_id) VALUES ('"
. $_SESSION['user_id'] . "', '" . $_GET['vierkleuren_id'] . "')", $db_handle);
mysql_close($db_handle);
$db_found = mysql_select_db($database, $db_handle);
mysql_query ("INSERT INTO users_reeksen (user_id, vierkleuren_id) VALUES ('"
. $_SESSION['user_id'] . "', '" . $_GET['vierkleuren_id'] . "')", $db_handle);
mysql_close($db_handle);
hoop dat iemand wat ziet.
groeten
- Bouw foutafhandeling in.
- beveilig je $_GET (en $_POST en $_COOKIE) variabelen tegen SQL-injection met mysql_real_escape_string()
- Verdiep je in de nieuwe MySQLi-functies van PHP. De MySQL-functies gaat er op den duur uit.
Maar nog steeds gaat er dus iets niet goed. Iemand????
De variabelen komen wel goed door want als ik daar echo voor zet geef die ze mooi weer.
Gr
Wat zegt mysql_error()?
hier is de code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
$db_handle = mysql_connect($server, $user_name, $password);
$db_found = mysql_select_db($database, $db_handle);
# errors weergeven
ini_set('display_errors',0); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
# sql debug
define('DEBUG_MODE',false); // true == aan, false == uit
# functie voor sql debug
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
$sql_insert_user = "INSERT INTO users_reeksen (user_id, vierkleuren_id)
VALUES (
'';
'".mysql_real_escape_string($_SESSION['user_id'])."',
'".mysql_real_escape_string($_GET['vierkleuren_id'])."',
)
";
if (($uservier = mysql_query($uservier)) === false)
{
# als de query fout is -> foutafhandeling
echo showSQLError($uservier,mysql_error(),'Fout bij het invoegen van de data.');
}
else
{
# De query is geluk! :)
echo 'Data is toegevoegt!';
}
$db_found = mysql_select_db($database, $db_handle);
# errors weergeven
ini_set('display_errors',0); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
# sql debug
define('DEBUG_MODE',false); // true == aan, false == uit
# functie voor sql debug
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
$sql_insert_user = "INSERT INTO users_reeksen (user_id, vierkleuren_id)
VALUES (
'';
'".mysql_real_escape_string($_SESSION['user_id'])."',
'".mysql_real_escape_string($_GET['vierkleuren_id'])."',
)
";
if (($uservier = mysql_query($uservier)) === false)
{
# als de query fout is -> foutafhandeling
echo showSQLError($uservier,mysql_error(),'Fout bij het invoegen van de data.');
}
else
{
# De query is geluk! :)
echo 'Data is toegevoegt!';
}
Kijk maar goed naar lijn 9.
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';
'6',
'' at line 3
Toevoeging op 03/10/2013 18:55:48:
toen ik de tekens op lijn 26 weg haalde zegt hij dit:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 6
Een komma teveel bij de laatste value....
Wij plaatsen ook geen komma na een opsomming.
Gewijzigd op 03/10/2013 18:59:05 door - Ariën -
Error: Duplicate entry '6' for key 'user_id'
Heb je het al eens vertaald?
die error??
Ja....
ja ik maak er uit op dat hi de waardes twee keer mee krijg??? Maar ik haal ze maar 1x op.
Je weet het verschil tussen INSERT en SELECT?
ja dat wel. insert is in een tabel plaatsen en select is iets selecteren vanuit je db
BLijkbaar wil je dus het getal 6 in de database plaatsen, terwijl die er al in staat, en blijkbaar een INT is, met een AUTO_INCREMENT setting....
Ja de user_id komt daar vaker in voor uiteraard. Die andere is alleen altijd anders.
Gewijzigd op 03/10/2013 19:23:27 door wes achternaam
Wat zijn de eigenschappen van het veld nu dan? Een normale INT zonder PK zou gewoon moeten kunnen werken.
Error: Duplicate entry '6' for key 'user_id'
dus de drie velden zijn:
users_reeksen_id (primary key, auro_encrement)
users_id (int)
vierkleuren_id(int)
Gewijzigd op 03/10/2013 20:04:43 door wes achternaam
Ergens wordt de ID "6" opnieuw aangemaakt, aangezien deze er al is, kan deze niet worden aangemaakt en geeft het die error.
Dan maak je een primary key op user_id en vierkleuren _id.
Kortom:
Code (SQL)
1
2
3
4
5
6
2
3
4
5
6
DROP TABLE users_reeksen_id;
CREATE TABLE users_reeksen_id (
user_id INT,
vierkleuren_id INT,
PRIMARY KEY (user_ud, vierkleuren_id)
)
CREATE TABLE users_reeksen_id (
user_id INT,
vierkleuren_id INT,
PRIMARY KEY (user_ud, vierkleuren_id)
)
De pk op user_id en vierkleuren_id betekent dat je nooit dezelfde combinatie in kunt voeren.
Gewijzigd op 03/10/2013 20:20:56 door Ger van Steenderen