表不会更新PHP

时间:2014-04-18 03:28:57

标签: php

我之前从页面获取了id。这个页面上的所有内容都可以从数据库中填充。当我点击添加按钮时,数据库不会被填充。一切看起来都不错,但我无法弄清楚为什么它不会更新。我是php的新手。我确信我的代码非常草率

<?php
{
$Reg_ID = $_POST['id'];
$dbhost = '';
$dbuser = '';
$dbpass = '';
$database ='';
$table = '';   
if(isset($_POST['add']))
{



$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}

if(! get_magic_quotes_gpc() )
{
   $Reg_F_Name = addslashes ($_POST['Reg_F_Name']);
   $Reg_L_Name = addslashes ($_POST['Reg_L_Name']);
}
else
{
   $Req_F_Name = $_POST["Req_F_Name"]; 
   $Reg_L_Name = $_POST["Reg_L_Name"];
}
$Req_F_Name = $_POST["Req_F_Name"]; 
$Reg_L_Name = $_POST["Reg_L_Name"];
$Reg_Phone = $_POST["Reg_Phone"];
$Reg_Email = $_POST["Reg_Email"];
$Reg_Mod_Request = $_POST["Reg_Mod_Request"];
$Reg_Address_1 = $_POST["Reg_Address_1"];
$Reg_Address_2 = $_POST["Reg_Address_2"];
$Reg_City = $_POST["Reg_City"];
$Reg_State = $_POST["Reg_State"];
$Reg_Zip_Code= $_POST["Reg_Zip_Code"];
$Reg_ID= $_POST["Reg_ID"];
$Reg_Phone= str_replace("-","","$Reg_Phone");


$sql = "UPDATE $table".
       "(Reg_F_Name,Reg_L_Name, Reg_Phone, Reg_Email, Reg_Mod_Request, Reg_Address_1, Reg_Address_2, Reg_City, Reg_State, Reg_Zip_Code) ".
      "VALUES('$Reg_F_Name','$Reg_L_Name','$Reg_Phone','$Reg_Email','$Reg_Mod_Request','$Reg_Address_1','$Reg_Address_2','$Reg_City','$Reg_State','$Reg_Zip_Code')".
       "WHERE Reg_ID = '$Reg_ID'";

mysql_select_db($database);
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($conn);
}
else
{
?>

<?php
$con=mysqli_connect($dbhost, $dbuser, $dbpass, $database);
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
$query = mysqli_query($con, "SELECT * FROM Request WHERE Reg_ID = '$Reg_ID'");
?>




<form method="post" action="viewrequests.php" style="width: 500px">
<fieldset>
<input type='hidden' name='__token_timestamp__' value='1397526990'>
<input type='hidden' name='__token_val__' value='34a10d1cfc4b20e45c901e83624677ad'>
<p style="text-align: center">Update Prayer Request</p>
<div style="width: 500px; float: left">

<?php
while($rows = mysqli_fetch_array($query))
  {

?>

Please pray for:
<br />First Name: <input name="Reg_F_Name" type="text" id="Reg_F_Name" value="<? echo $rows['Reg_F_Name']; ?>">
<br />Last Name: <input name="Reg_L_Name" type="text" id="Reg_L_Name" value="<? echo $rows['Reg_L_Name']; ?>">
<br />Prayer Request: <? echo $rows['Reg_Request']; ?>
<br />Update Prayer Request:
<br /><textarea name="Reg_Mod_Request" type="varchar" id="Reg_Mod_Request" rows="5" cols="30"><? echo $rows['Reg_Request']; ?></textarea>
<br />Primary Address: <input name="Reg_Address_1" type="varchar" id="Reg_Address_1" value="<? echo $rows['Reg_Address_1']; ?>">
<br />Secondary Address:<input name="Reg_Address_2" type="varchar" id="Reg_Address_2" value="<? echo $rows['Reg_Address_2']; ?>">
<br />City:<input name="Reg_City" type="char" id="Reg_City" value="<? echo $rows['Reg_City']; ?>">
<br />State:<input name="Reg_State" type="char" id="Reg_State" value="<? echo $rows['Reg_State']; ?>">
<br />Zip:<input name="Reg_Zip_Code" type="char" id="Reg_Zip_Code" value="<? echo $rows['Reg_Zip_Code']; ?>">
<br />Phone Number (555-555-5555):<input name="Reg_Phone" type="char" id="Reg_Phone" value="<? echo $rows['Reg_Phone']; ?>">
<br />Email Address:<input name="Reg_Email" type="varchar" id="Reg_Email" value="<? echo $rows['Reg_Email']; ?>">
<br /><br />
</div>
<input name="add" type="submit" id="add" value="Update Prayer Request">
</fieldset>
</form>

<?php
}
}
mysql_close();
}

?>

我认为问题与

有关
$sql = "UPDATE $table".
       "(Reg_F_Name,Reg_L_Name, Reg_Phone, Reg_Email, Reg_Mod_Request, Reg_Address_1, Reg_Address_2, Reg_City, Reg_State, Reg_Zip_Code) ".
      "VALUES('$Reg_F_Name','$Reg_L_Name','$Reg_Phone','$Reg_Email','$Reg_Mod_Request','$Reg_Address_1','$Reg_Address_2','$Reg_City','$Reg_State','$Reg_Zip_Code')".
       "WHERE Reg_ID = '$Reg_ID'";

但我不确定。任何帮助将不胜感激。

echo $ sql output

UPDATE Request (Reg_F_Name,Reg_L_Name, Reg_Phone, Reg_Email, Reg_Mod_Request, Reg_Address_1,
 Reg_Address_2, Reg_City, Reg_State, Reg_Zip_Code) VALUES('joe','qwea','4055554321',
'Fell off windmill. Broken legs possibly going to l','Fell off windmill.',
'4059 Mt Lee Dr','','Altus','OK','73521') 
WHERE Reg_ID = ''Could not enter data: 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 
'(Reg_F_Name,Reg_L_Name, Reg_Phone, Reg_Email, Reg_Mod_Request, Reg_Address_1, Re' at line 1

2 个答案:

答案 0 :(得分:0)

您需要将regid放入隐藏字段

<input type="hidden" name="Reg_ID" value="<?=$row['Reg_ID']?>">

所以现在您将在$_POST['Reg_ID']

中获得此值

或尝试这样

"UPDATE tablename".
       "SET Reg_F_Name ='{$Reg_F_Name}',Reg_L_Name='{$Reg_L_Name}', Reg_Phone='{$Reg_Phone}', Reg_Email='{$Reg_Email}', Reg_Mod_Request='{$Reg_Mod_Request}', Reg_Address_1='{$Reg_Address_1}', Reg_Address_2='{$Reg_Address_2}', Reg_City='{$Reg_City}', Reg_State='{$Reg_State'}, Reg_Zip_Code='{$Reg_Zip_Code}' ".
       "WHERE Reg_ID = '{$Reg_ID}'";

答案 1 :(得分:0)

您正在混合INSERT语法http://dev.mysql.com/doc/refman/5.6/en/insert.html

INSERT INTO tbl (columns) VALUES (values)

UPDATE语法http://dev.mysql.com/doc/refman/5.0/en/update.html

UPDATE tbl SET column=value WHERE column=value

尝试类似

的内容
UPDATE $table SET
 Reg_F_Name = '$Reg_F_Name',
 Reg_L_Name = '$Reg_L_Name',
 Reg_Phone = '$Reg_Phone',
 Reg_Email = '$Reg_Email',
 Reg_Mod_Request = '$Reg_Mod_Request',
 Reg_Address_1 = '$Reg_Address_1',
 Reg_Address_2 = '$Reg_Address_2',
 Reg_City = '$Reg_City',
 Reg_State = '$Reg_State',
 Reg_Zip_Code = '$Reg_Zip_Code'       
WHERE Reg_ID = '$Reg_ID'

此外,由于您有

,因此未设置$Reg_ID
WHERE Reg_ID = ''

在你的echo'ed sql中。将其作为隐藏元素添加到表单中,以便在表单提交时重置

<input type='hidden' name='id' value='<?php echo $Reg_ID; ?>'>