【发布时间】:2014-11-11 12:34:33
【问题描述】:
我正在尝试使用 PHP 文件中的 PDO 为我的网站记录一些数据。我有以下由 javascript 库 D3 调用的代码。调用工作正常,但是当我运行此代码时,我收到“内部服务器错误”。
我做错了什么?我一直在遵循网站上的指南,并且基本上使用与他们相同的原则。如果有人可以提供帮助,我将不胜感激。提前非常感谢,我的代码粘贴在下面。 (当然数据库信息是有效的)
$hostname="xxxx";
$username="xxxxxx";
$pw="xxxxxxxx";
$dbname="xxxx";
try {
$pdo = new PDO ("mysql:host=$hostname;dbname=$dbname","$username","$pw");
} catch (PDOException $e) {
echo "Failed to get DB handle: " . $e->getMessage() . "\n";
exit;
}
//Gets IP for client.
$ip = get_client_ip();
//An email, format of string.
$email = "test@test.dk";
//An int, in this case 19.
$prgm_name = $_GET["prgm"];
//Piece of text, format of string of course.
$prgm_options.=$prgm_name;
$prgm_options.= " - ";
$prgm_options.=$_GET["gene"];
$prgm_options.=" - ";
$prgm_options.=$_GET["data"];
//Datasize, int.
$data_size = 0;
//Timestamp.
$now = "NOW()";
//Table name.
$STAT_TABLE = "stat";
$query = $pdo->prepare("INSERT INTO $STAT_TABLE (ip, email, prgm, options, datasize, date) VALUES (:ip, :email, :prgm_name, :prgm_options, :data_size, :now);");
$query->execute(array( ':ip'=>'$ip',
':email'=>'$email',
':prgm_name'=>$prgm_name,
':prgm_options'=>'$prgm_options',
':datasize'=>'$datasize',
':now'=>$now));
【问题讨论】:
-
将 PDO 设置为异常模式,并在您的
execute失败时捕获异常。 -
它不工作的可能原因有很多。您需要查看服务器的错误日志以获取比“内部服务器错误”更详细的信息。
-
在文件顶部设置
error_reporting(E_ALL);ini_set("display_errors", 1);以获取有关错误的更多信息 -
为什么要在执行数组中的假定变量周围使用单引号?
标签: javascript php mysql pdo