inserting data into mysql
My insert and update pages (through my admin forlder) into mysql stopped working. When I try to insert/update details it stays on the same page without adding or updating anything into the database table.
I really don't know what happened and don't know where start looking. I didn't make any change to the pages whatsoever.
Is there anyone who had the same problem and can kindly give me a clue?
Appreciated Francesco
Insertng some code if it can be of nay help:
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = (开发者_运维百科$theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if(isset($_POST['username'])) {
mysql_select_db($database_satsconn, $satsconn);
$query_rstUname = "SELECT members_ID FROM members WHERE username = '$_POST[username]'";
$rstUname = mysql_query($query_rstUname, $satsconn) or die(mysql_error());
$row_rstUname = mysql_fetch_assoc($rstUname);
$totalRows_rstUname = mysql_num_rows($rstUname);
if($totalRows_rstUname > 0){
$error['uname'] = 'That username is already in use. Please choose another.';
}
}
if(isset($_POST['pwd']) && isset($_POST['pwd'])) {
if($_POST['pwd'] != $_POST['con_pwd']) {
$error['pwd'] = 'Your passwords don\'t match.';
}
else {
$_POST['pwd'] =md5($_POST['pwd']);
}
}
if(!isset($error)) {
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "addUser")) {
$insertSQL = sprintf("INSERT INTO members (realname, username, pwd) VALUES (%s, %s, %s)",
GetSQLValueString($_POST['realname'], "text"),
GetSQLValueString($_POST['username'], "text"),
GetSQLValueString($_POST['pwd'], "text"));
mysql_select_db($database_satsconn, $satsconn);
$Result1 = mysql_query($insertSQL, $satsconn) or die(mysql_error());
}
}
if ((isset($_POST['members_ID'])) && ($_POST['members_ID'] != "")) {
$deleteSQL = sprintf("DELETE FROM members WHERE members_ID=%s",
GetSQLValueString($_POST['members_ID'], "int"));
mysql_select_db($database_satsconn, $satsconn);
$Result1 = mysql_query($deleteSQL, $satsconn) or die(mysql_error());
$deleteGoTo = "add_member.php";
if (isset($_SERVER['QUERY_STRING'])) {
$deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
$deleteGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $deleteGoTo));
}
mysql_select_db($database_satsconn, $satsconn);
$query_rstAdmin = "SELECT * FROM members ORDER BY realname ASC";
$rstAdmin = mysql_query($query_rstAdmin, $satsconn) or die(mysql_error());
$row_rstAdmin = mysql_fetch_assoc($rstAdmin);
$totalRows_rstAdmin = mysql_num_rows($rstAdmin);
?>
"it stays on the same page without adding or updating anything" is very common problem and can be caused by thousands of errors. There is noway to solve it by finding "anyone who had the same problem".
If you're just user of this code, it would be better to hire a programmer.
If you supposed to be a programmer yourself, you have to learn how to debug
your application. Debugging stands for finding where the error is. Although debugging could help only if you know, what your code does. You can try it anyway.
There are many things to do. You have to be sure that you can see all possible errors. You can start from this useful article
I see there's a lot of if(isset($variable))
on the code. What happens if isset($_POST['MM_insert'])
returns false? Put some error traps (a simple echo telling that the variable isn't set will do) to see where exactly the code stops working, and then you'll see why it stopped working.
Also, try using print_r()
on the possible-problematic variable to see if you're getting exactly what you're expecting.
PS: I'd use only one db selection. I think there's no need to do it more than once in this case, except you explicitly need and want to use a different db.
精彩评论