0

我不断得到

服务器错误网站在检索https://www.website.com/update.php?FName=asdd&PHONE=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 如果有帮助 - 我正在使用 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>
4

5 回答 5

2

请使用PDO,因为mysql_*功能已被弃用..

对于你的问题,你使用$_GETand not $_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;
于 2012-09-06T12:45:40.660 回答
1

你的最后一句话是错误的:

echo "Database Update with:" .$FName. " " .$LName. " " .$PHON. ;

应该是(没有最后一个点):

echo "Database Update with:" .$FName. " " .$LName. " " .$PHON ;

如果您查看网络服务器的错误日志,您将能够看到错误。另一个想法可能是在 PHP 中打开错误,php.ini或者使用ini_set("display_errors", 1);. 确保你只在你的开发系统上这样做。

于 2012-09-06T12:43:34.077 回答
1

您正在检查$_POST['PHON'],而在查询字符串中您正在传递

https://www.website.com/update.php?FName=asdd&PHONE=4444444444

请先更正 PHONE。然后检查

得到它喜欢

$_GET['PHONE']

或者

$_REQUEST['PHONE']
于 2012-09-06T12:44:20.320 回答
1

由于引号('"")可能是 sql 错误。为避免这种情况,您可以使用类似

    $FName = mysql_real_escape_string($_POST['FName']);
    $FNLame = mysql_real_escape_string($_POST['FLame']);
    $PHON = $_POST['PHON'];
于 2012-09-06T12:49:19.360 回答
0

你的用户名和密码正确吗?大多数 localhost 的默认设置是 root 并且没有密码

于 2012-09-06T12:47:15.703 回答