Vic*_*lea 0 html php mysql ajax jquery
我在开发的webapp中遇到错误,我确信这是一个非常基本的错误.
每当我在网上运行此代码时,chrome debbuger都会返回此错误:
POST http://my_ip/server_wrapper.php 500 (Internal Server Error)
Run Code Online (Sandbox Code Playgroud)
这是JQUERY,js文件片段"
this.post = function () {
$.post ("server_wrapper.php",
{
_id: this.id,
_question: this.question,
_type: "none"
},
function (data, status) {
alert ("DATA: " + data + " status: " + status);
}
);
}
Run Code Online (Sandbox Code Playgroud)
这是php文件:
<?php
if (isset($_POST["_question"]) && isset($_POST["_type"]) && isset($_POST["_id"])) {
$question = $_POST["_question"];
$type = $_POST["_type"];
$id = $_POST["_id"];
$con = mysqli_connect ("localhost", "user", "pass", "database");
if (mysqli_connect_errno($con)) {
echo "Failed to connecto to db";
} else {
mysqli_query ($con, "INSERT INTO questions (id, question, type) VALUES ('$id','$question','$type')");
}
mysqli_close ($con);
}
?>
Run Code Online (Sandbox Code Playgroud)
这就是日志一遍又一遍地返回:
PHP Fatal error: Call to undefined function mysqli_connect() in /var/www/server_wrapper.php
Run Code Online (Sandbox Code Playgroud)
tra*_*lad 10
要在页面上显示错误:
<?php
ini_set('display_errors', '1');
ini_set('error_reporting', E_ALL);
?>
Run Code Online (Sandbox Code Playgroud)
首先将启用页面本身的错误显示,而不是生成500错误.
第二个将确保报告所有错误.这包括通知.
建议:编写甚至不会发出通知的代码.
要查找PHP错误日志文件:
grep error_log /etc/php.ini
grep ^error_log /etc/php.ini
Run Code Online (Sandbox Code Playgroud)
要在RedHat系列服务器上安装MySQL:
yum install mysql.x86_64
yum install mysql mysql-server
chkconfig --level 2345 mysqld on
service mysqld start
mysqladmin -u root password somepassword
Run Code Online (Sandbox Code Playgroud)
如果您想访问最新的PHP版本,我建议您使用以下repos.
wget http://mirrors.coreix.net/fedora-epel/6/x86_64/epel-release-6-7.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
Run Code Online (Sandbox Code Playgroud)
安装:
rpm -Uvh remi-release-*.rpm epel-release-*.rpm
/bin/rm epel-release-*.noarch.rpm remi-release-*.rpm
perl -pi -e 's/enabled=0/enabled=1/g' /etc/yum.repos.d/remi.repo
yum update (optional - not recommended unless you know what you are doing)
yum install yum-plugin-priorities
Run Code Online (Sandbox Code Playgroud)
确保在安装repos之后编辑它们并将enabled设置为0,这样您就可以选择性地使用它们.
yum --enablerepo=remi,epel install whatever
Run Code Online (Sandbox Code Playgroud)
看起来没有安装或启用mysqli扩展.检查你的php.ini以获取该行extension=mysqli.so,否则启用它或安装它sudo apt-get install php5-mysql