Archief - MYSQL: shoutbox geeft mysql error

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

azerty_2006

Legacy Member
Elk een goeie dag enzo :).

Na uren te zitten lezen en kijken naar tutorials heb ik eens besloten
om een eerste webapp in elkaar te proberen knutselen.
Het gaat om een zeer simpele shoutbox die gebruik maakt van (x)html, css, php en mysql.

Nu was ik aan het testen (het ding is nog niet af) of de data goed naar mysql word gestuurd toen ik op een error stootte namelijk:
Code:
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 'SET message="test test test", created_at = NOW()' at line 1

Ik ben pas begonnen met SQL aan te leren dus ik ken er maar zéér weinig van.
'K snap dan ook niet wat er mis is met de code :confused:.
Hopelijk zijn hier mensen die het probleem zien en mij kunnen zeggen wat er fout is.

Dit zijn mijn files:

index.php
PHP:
<html>

<head>
	<title>Simple Shoutbox v0.1</title>
	<link rel="stylesheet" type="text/css" href="style.css" />
	<!-- Simple Shoutbox by Hyperz [[email protected]] -->
</head>




<body>

<div id="container">
	<center><strong>Messages</strong></center>
	<hr width="200px" align="left" />
	<?php 
	
	
	
	?>
	<hr width="200px" align="left" />
	<form method="post" action="post.php">
		<p>Enter your name:<br />
		<input type="text" name="name" /></p>
		<p>Enter your message:<br />
		<textarea name="message" rows="5"></textarea></p>
		<input type="submit" name="submit" value="Submit Shout !" />
		<input type="reset" name="reset" value="Reset" />
		<hr width="200px" align="left" />
		<small><center>Simple Shoutbox by <a href="mailto:[email protected]"><b>Hyperz</b></a></center></small>
	</form>
</div>

</body>


</html>

post.php
PHP:
<?php
#-------------------------------------------#
#- Simple ShoutBox - Version 0.1           -#
#- Coded by Hyperz ([email protected]) -#
#-------------------------------------------#

#----------------------------------------------------------------#
#- NOTE: do not edit this file unless you know what your doing! -#
#- Data processor                                               -#
#----------------------------------------------------------------#

// Including the config file...
include("config.php");
// Done :)

$name = $_POST["name"];
$message = $_POST["message"];
$query = 'INSERT INTO '.$db_prefix.'messages SET name="'.$name.'", SET message="'.$message.'", created_at = NOW();';

function error_sql() {
	die(mysql_error());
}


mysql_connect($db_server,$db_user,$db_pass) or error_sql();
mysql_select_db($db_name) or error_sql();
mysql_query($query) or error_sql();
mysql_close() or error_sql();

include("index.php");

#---------------#
#- End of File -#
#---------------#
?>

config.php
PHP:
<?php
#-------------------------------------------#
#- Simple ShoutBox - Version 0.1           -#
#- Coded by Hyperz ([email protected]) -#
#-------------------------------------------#

#-------------------#
#- ShoutBox config -#
#-------------------#

$db_server = "localhost"; // Server hostname. Usualy localhost
$db_user = "root"; // Database user name
$db_pass = ""; // Database password
$db_name = "simple_shoutbox"; // The database name
$db_prefix = "sb_"; // Database table prefix

#---------------#
#- End of File -#
#---------------#
?>

install.php
PHP:
<?php
#-------------------------------------------#
#- Simple ShoutBox - Version 0.1           -#
#- Coded by Hyperz ([email protected]) -#
#-------------------------------------------#

#----------------------------------------------------------------#
#- NOTE: do not edit this file unless you know what your doing! -#
#- Installation                                                 -#
#----------------------------------------------------------------#

// Including the config file...
include("config.php");
// Done :)

$install = "CREATE DATABASE ".$db_name.";";
$query = "CREATE TABLE ".$db_prefix."messages (
	id int not null auto_increment primary key,
	name varchar(100),
	message text,
	created_at datetime not null );";

function error_sql() {
	die(mysql_error());
}


mysql_connect($db_server,$db_user,$db_pass) or error_sql();
mysql_query($install) or error_sql();
mysql_select_db($db_name) or error_sql();
mysql_query($query) or error_sql();
mysql_close() or error_sql();

// If all went well, let the user know.
echo "<b>Installation complete!<br />";
echo "You can now start using your shoutbox ;).</b>";

#---------------#
#- End of File -#
#---------------#
?>

What did I do wrong ? :s

Radiance

Legacy Member
In post.php staat alvast 2x SET.

PHP:
$query = 'INSERT INTO '.$db_prefix.'messages SET name="'.$name.'", message="'.$message.'", created_at = NOW();';

Persoonlijk doe ik de quoting met single quotes in de SQL en er rond dubbele. Single quotes in de SQL werken namelijk altijd in MySQL, andersom daarom niet.

azerty_2006

Legacy Member
Thanks, zal eens testen :niceone:
Edit: jup, het werkt, nogmaals bedankt!
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan