Parse error: syntax error, unexpected T_STRING in /home/gs1004/public_html/mdc/test.p

Status
Niet open voor verdere reacties.

robbie21496

Gebruiker
Lid geworden
1 sep 2008
Berichten
114
Ik ben begonnen met MySQL, en na een klein stukje code gaat het al mis :P

Wat doe ik hier verkeerd, ik krijg deze error;
Parse error: syntax error, unexpected T_STRING in /home/gs1004/public_html/mdc/test.php on line 14


PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Install</title>
</head>
<body>
Installed

<? php
$username="gs1004_mdc";
$password="RunTest";
$database="gs1004_mdc";

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Failed to connect to the database.");

CREATE TABLE officers
{
userName VARCHAR(24) NOT NULL,
password VARCHAR(20) NOT NULL,
faction VARCHAR (30) NOT NULL,
Permissions INT (2) NOT NULL,
}

 ?>
</body>
</html>
 
En de spatie tussen <? en php moet weg. En die SQL-query los in de php zetten gaat ook niet veel resultaat opleveren...
 
Nu loopt die hier vast:

CREATE TABLE officers
{
userName VARCHAR(24) NOT NULL,
password VARCHAR(20) NOT NULL,
faction VARCHAR (30) NOT NULL,
Permissions INT (2) NOT NULL
}
 
Goed plan als je de sql-statements via php laat uitvoeren. Even aangepast naar wat in deze les wordt getoond:

Code:
$query="CREATE TABLE officers
(
userName VARCHAR(24) NOT NULL,
password VARCHAR(20) NOT NULL,
faction VARCHAR (30) NOT NULL,
Permissions INT (2) NOT NULL
)";
mysql_query($query) or die ("Aanmaken tabel mislukt.");

Tijs.
 
Aha, dat heb ik gedaan en nu werkt het goed.

Nu met deze code;
PHP:
$query="INSERT INTO officers (userName, password, faction, Permissions) VALUES ($name, $password, $faction, $permissions)";
mysql_query("$query");
voert hij de query niet uit. Ik krijg geen error/warning.


EDIT: Dit gedaan:
PHP:
$query="INSERT INTO officers (userName, password, faction, Permissions) VALUES ('$name', '$password', '$faction', '$permissions')";
mysql_query("$query");
echo "You succesfully created the account of ".$name.", part of the faction ".$facname.". You gave him the permission of ".$permname."."

Ik zie de echo dus hij loopt niet vast, maar als ik via PHPMyAdmin kijk, is er geen toegevoegde rij.
 
Laatst bewerkt:
Dat je de echo ziet zegt niks over het wel of niet goedgaan van de query.

Maak van regel 2 dit eens:
PHP:
mysql_query($query) or die('An error occured: '. mysql_error());
 
Ah, dat van die mysql_error wist ik nog niet :P

Voordat ik dit probeerde maakte hij wel een nieuwe rij aan, maar de informatie wordt niet aan de database toegevoegd.

Ik heb nu de code die jij hebt gegeven gebruikt. Ik krijg geen error message, maar weer wordt het niets toegevoegd aan de database, behalve en lege rij.


EDIT:
Het ziet er nu dus zo uit:
PHP:
$query = " INSERT INTO officers
(userName, password, faction, Permissions)
VALUES
('$name', '$pass', '$faction', '$perm')";

mysql_query($query) or die('An error occured: '. mysql_error());


Dit is hoe ik de informatie krijg;


PHP:
<body>
<form action="createscript.php" method="post">
Name:<br />
<INPUT TYPE="text" NAME="name" SIZE="20" MAXLENGTH="25"><br />
Password:<br />
<INPUT TYPE="text" NAME="pass" SIZE="20" MAXLENGTH="16"><br />
<br />
Faction:<br />
<INPUT TYPE="radio" NAME="faction" VALUE="1" CHECKED>Los Santos Police Department<BR>
<INPUT TYPE="radio" NAME="faction" VALUE="2">San Andreas Sherrifs Department<BR>
<INPUT TYPE="radio" NAME="faction" VALUE="3">Federal Bureau of Investigation <BR>
<INPUT TYPE="radio" NAME="faction" VALUE="4">National Office Of Security Enforcement<BR>
<br />
Permission:<br />
<INPUT TYPE="radio" NAME="perm" VALUE="1" CHECKED>User <BR>
<INPUT TYPE="radio" NAME="perm" VALUE="2">Faction Leader <BR>
<INPUT TYPE="radio" NAME="perm" VALUE="3">Administrator <BR>
<br />
<br />
<button type="submit">Create Account</button>
</form>
</body>
 
Laatst bewerkt:
De meest simpele manier (en meest onveilige) is deze:
PHP:
$query = 'INSERT INTO officers
(userName, password, faction, Permissions)
VALUES
('. $_POST['name'] .', '. $_POST['pass'] .', '. $_POST['faction'] .', '. $_POST['perm'] .')';
*
mysql_query($query) or die('An error occured: '. mysql_error());

Wanneer je een query uitvoert en de waardes komen niet door is het raadzaam de query te echoën. Dan weet je tenminste wat er naar de database is gegaan.
 
Nu doe ik dat, en nog steeds niks in de database :P

Behalve een nieuwe lege rij dan.
 
wat dacht je ervan om een echo te doen van je $query kun je tenminste zien of de query juist opgebouwd wordt!

en moeten string values niet tussen single quotes staan in een query!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan