我一直在获取
服务器错误网站在检索时遇到错误https://www.website.com/update.php?FName=asdd&电话=4444444444。它可能已停机进行维护或配置不正确。
<?php
$FName = $_POST['FName'];
$LName = $_POST['LName'];
$PHON = $_POST['PHON'];
//connect
$dbh=mysql_connect ("localhost", "username", "password") or die ('ERROR!');
mysql_select_db ("user_Client");
$query = "INSERT INTO ClientTable (ID, FName, LName, PHON) VALUES
('NULL','".$FName."','".$LName."','".$PHON."')";
mysql_query($query) or die ('Error updating Daatabase');
echo "Database Update with:" .$FName. " " .$LName. " " .$PHON. ;
?>
我不知道这里出了什么问题。我听从了这里的指示http://teamtutorials.com/web-development-tutorials/php-tutorials/inserting-data-into-a-mysql-database-using-php#.UEiSQY3iajk如果有帮助的话,我正在使用Josthost的cPanel。
这是表格:
<html>
<head>
<title></title>
</head>
<body>
<form method="post" action="update.php">
First Name:<br/>
<input type="text" name="FName" size="30" /><br/>
Last Name:<br/>
<input type="text" name="LName" size="30" /><br/>
Phone:<br/>
<input type="text" name="PHON" size="12" /><br/>
<input type="submit" value="Update Database"/>
</form>
</body>
</html>
请使用PDO
,因为mysql_*
函数已弃用。。
对于您的问题,您使用了$_GET
而不是$_POST
,而且您拼错了变量($FNLame
):
$db = new PDO('mysql:host=localhost;dbname=user_Client;charset=UTF-8', 'username', 'password', array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$FName = $_GET['FName'];
$LName = $_GET['LName'];
$PHON = $_GET['PHON'];
$stmt = $db->prepare("INSERT INTO `ClientTable`(ID, FName, LName, PHON) VALUES (0,:FName,:LName,:PHON)");
$stmt->execute(array(':FName' => $FName, ':LName' => $LName, ':PHON' => $PHON));
echo "Database Update with:" .$FName. " " .$LName. " " .$PHON;
您的最后一句话是错误的:
echo "Database Update with:" .$FName. " " .$LName. " " .$PHON. ;
应该是(没有最后一个点):
echo "Database Update with:" .$FName. " " .$LName. " " .$PHON ;
如果您查看Web服务器的错误日志,您将能够看到错误。另一个想法可能是在php.ini
或ini_set("display_errors", 1);
中打开PHP中的错误。确保你只在你的开发系统上这样做。
您正在检查$_POST['PHON']
,而在Query字符串中您正在传递
https://www.website.com/update.php?FName=asdd&电话=4444444444.
请先更正PHONE。然后检查
像一样
$_GET['PHONE']
或
$_REQUEST['PHONE']
可能是由于引号引起的sql错误('或")。为了避免这种情况,你可以使用类似的东西
$FName = mysql_real_escape_string($_POST['FName']);
$FNLame = mysql_real_escape_string($_POST['FLame']);
$PHON = $_POST['PHON'];
您的用户名和密码正确吗?大多数localhost的默认值是root,没有密码