<?php
$dbserver="localhost";
$username="root";
$pass="root";
$link=mysql_connect("$dbserver","$username","$pass");
if(!$link){die('DB Connection Failed'.mysql_error()); }
echo('connected');
$Name=$_POST["namei"];
$ID=$_POST["pid"];
$Address=$_POST["address"];
$Phone=$_POST["phone"];
$query="INSERT INTO contact(Name,ID,Address,Phone) VALUES('".$Name."',".$ID.",'".$Address."',".$Phone.");";
echo($query);
?>
上面的代码是我用来连接到 mysql 数据库的,我将内容从 html 页面发布到此页面。据我检查,POST 没有问题。但点击提交时,它给我一个错误“500内部服务器错误”。
我正在使用 Apache 2.2 服务器和 mysql 5.5。
谁能告诉我我的错误是什么?
谢谢
最佳答案
首先请运行
<?php
echo 'phpversion: ', phpversion(), "<br />\n";
if ( !extension_loaded('mysql') ) {
die('mysql module not available');
}
echo 'mysql_get_client_info: ', mysql_get_client_info(), "<br />\n";
die;
检查 a) 您是否可以运行任何 php 脚本以及 b) mysql_* 函数是否可用。
然后尝试
<?php
echo "start<br />\n";
error_reporting(E_ALL);
ini_set('display_errors', true);
flush();
$dbserver="localhost";
$username="root";
$pass="root";
$link=mysql_connect($dbserver, $username, $pass);
if(!$link) {
die('DB Connection Failed '.mysql_error());
}
echo "connected<br />\n";
if ( !mysql_select_db('dbname here', $link) ) {
die('DB selection failed. '.mysql_error($link));
}
echo "db selected<br />\n";
$Name = mysql_real_escape_string($_POST['namei'], $link);
$ID = mysql_real_escape_string($_POST['pid'], $link);
$Address = mysql_real_escape_string($_POST['address'], $link);
$Phone = mysql_real_escape_string($_POST['phone'], $link);
$query = "
INSERT INTO
contact
(Name,ID,Address,Phone)
VALUES
('$Name', '$ID','$Address','$Phone')
";
echo '<pre>Debug: query=', htmlentities($query), "</pre>\n";
它在任何情况下都会打印一些内容(回显/齐平)并设置 error_reporting + display_errors以便将错误消息发送到客户端(您不希望在生产中出现这种情况,不要忘记删除这些行)。
我还将必要的调用添加到 mysql_select_db()和 mysql_real_escape_string() (当脚本真正将查询发送到 mysql 服务器时就需要)。
关于php - PHP页面连接数据库的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7239546/