Ik heb mijn eerste PHP insert scriptje gemaakt, alleen hoe kan ik de foutafhandeling goed maken.
Zoals dat als nu maximaal aantal tekens gebruik is krijg ik warning enz.

<?php
include("config.php");

$name = 'Niels' ;

if(isset($_POST['submit'])) {
  $title = trim($_POST['title']);
  $content = trim($_POST['text']);

mysql_query("INSERT INTO pages (pagina, inhoud, auteur, editdate, created)
VALUES ('".$title."', '".$content."', '".$name."', NOW(),'NOW());"); 

  }

{;?>
Created
<?;}
?>
Je andere topics lezen.
<?php
$string = "Dit is een lange string!";
if(strlen($string)>10) {
echo "De string is langer dan 10 tekens!";
}
?>


Verder is je MySQL-code lek, omdat mysql_real_escape_string() ontbreekt. Je bent nu vastbaar voor hacks.
Gebruik geen Mysql_query(""); deze verouderd probeer Mysqli te gebruiken.
En NOOIT een input direct in een database zetten! dit script is niet veilig. gebruik mysql_real_escape_string(); en als je mysqli gebruikt, gebruik dan mysqli_real_escape_string();


<?php
mysql_query("INSERT INTO pages (pagina, inhoud, auteur, editdate, created)
VALUES ('".$title."', '".$content."', '".$name."', NOW(),NOW())");
?>

gebruik ) or die(mysql_error()); om een fout te krijgen.
Je kan ook trigger_error gebruiken is ook stuk beter.
maar ik maakte het gewoon simpel ;p
Misschien een gekke vraag, maar wat is nou eigenlijk precies het verschil tussen MySQL en MySQLi?
Zie php.net.
mysql_ gaat verdwijnen.
Hangt een beetje van de context af waarin je het gebruikt. MySQL kan zowel betekenen:
- het database-type / de database-variant "MySQL"
- de PHP-extensie die je in staat stelt te communiceren met een MySQL-database (hier vallen functies die starten met "mysql_" onder)

MySQLi (MySQL improved) is een nieuwe(re) PHP-extensie voor communicatie met je MySQL-database. De oorspronkelijke extensie (mysql) is eigenlijk al ~10 jaar verouderd en wordt op korte termijn uitgefaseerd.

Als je nieuwe code schrijft zou je geen gebruik meer moeten maken van de mysql-extensie (functies die starten met "mysql_").

Naast MySQLi kun je ook PDO gebruiken om met een MySQL-database te communiceren - PDO (die niet voor een specifiek database-type geschreven is) heeft tevens een MySQL-driver (PDO_MYSQL).

Wat SanThe dus zegt, eigenlijk :).
Wordt het dan dit?

<?php
mysqli_query("INSERT INTO pages (pagina, inhoud, auteur, editdate, created)
VALUES ('".$title."', '".$content."', '".$name."', NOW(),NOW())");
?>
Nee, maar je zit wel op de goede weg.
Je moet je databaseconnectie meegeven, en mysqli_real_escape_string() mist nog.

Reageren