rnsetup.php

With the pair of included files written, it’s now time to set up the MySQL tables they will use. This is done with Example 20-3, rnsetup.php, which you should type in and load into your browser before calling up any other files—otherwise you’ll get numerous MySQL errors.

The tables created are kept short and sweet, and have the following names and columns:

rnmembers

username user (indexed), password pass

rnmessages

ID id (indexed), author auth (indexed), recipient recip, message type pm, message message

rnfriends

username user (indexed), friend’s username friend

rnprofiles

username user (indexed), “about me” text

Because the function createTable first checks whether a table already exists, this program can be safely called multiple times without generating any errors.

It is very likely that you will need to add many more columns to these tables if you choose to expand on this project. If so, you may need to issue a MySQL DROP TABLE command before recreating a table.

Example 20-3. rnsetup.php
<?php // rnsetup.php include_once 'rnfunctions.php'; echo '<h3>Setting up</h3>'; createTable('rnmembers', 'user VARCHAR(16), pass VARCHAR(16), INDEX(user(6))'); createTable('rnmessages', 'id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, auth VARCHAR(16), recip VARCHAR(16), pm CHAR(1), time INT UNSIGNED, message VARCHAR(4096), INDEX(auth(6)), INDEX(recip(6))'); createTable('rnfriends', 'user VARCHAR(16), friend VARCHAR(16), INDEX(user(6)), INDEX(friend(6))'); createTable('rnprofiles', 'user VARCHAR(16), ...

Get Learning PHP, MySQL, and JavaScript now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.