我正在尝试从mysql切换到mysqli,因为我已经因为使用mysql启动而感到非常悲痛。我一直在看例子,并认为我做得对。但是,我不知道。当我尝试添加打孔时,它不会添加。我只是得到一个白色的屏幕。添加打孔后没有错误消息或我请求的重定向。我编辑了该文件以隐藏一些敏感数据,但没有必要进行故障排除。我多次看过这些例子,我似乎无法弄清楚出了什么问题。使用mysql时可以很好地添加打孔。如果有人可以告诉我如何解决这个问题,我将非常感激。谢谢!
<head>
<title>Process Punch</title>
<body bgcolor="#9966FF">
<link rel="icon" type="image/ico" href="favicon path"/>
</head>
<?php
define('DB_NAME', 'dbname');
define('DB_USER', 'dbuser');
define('DB_PASSWORD', 'dbpass');
define('DB_HOST', 'dhbost');
$link = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if ($link->connect_errno > 0){
die('Could not connect: ' .$link->connect_error);
}
$userid_value = $_POST['userid'];
$punchtype_value = $_POST['punchtype'];
$group_value = $_POST['group'];
$dept_value = $_POST['dept'];
$notes_value = $_POST['notes'];
$table = "tc_".$userid_value;
$unixtime = time();
$unixtime = $unixtime + 3600;
$date_value = date('m/d/Y h:i:s A', $unixtime);
$checkusersql = "SELECT * FROM tc_users WHERE userid = '$userid_value'";
$usercheck = $link->query($checkusersql);
if ($usercheck->num_rows) == 0) {
echo "Sorry, " . $userid_value . " is not a valid user ID. Please try again.";
}else {
$sql = "INSERT INTO $table (time, punchtype, groupname, dept, notes) VALUES ('$date_value','$punchtype_value', '$group_value', '$dept_value', '$notes_value')";
$link->query($sql);
}
header( 'Location: punch path');
$link->close();
?>
答案 0 :(得分:0)
两件事:
if ($usercheck->num_rows) == 0)
^-- this one should be removed
有一个括号太多了。
使用($usercheck->num_rows == 0)
关于你的日期/时间问题;您使用的是m/d/Y h:i:s
而不是date("Y-m-d H:i:s")
MySQL期待以格式2014-07-07 19:30:13的数字表示为例。
date("Y-m-d H:i:s A")
或date("Y-m-d H:i:s")
也是如此,这就是为什么你会得到全零。
使用H
或h
:( as per the manual)
h - 12小时格式的一小时,前导零点01到12
H - 24小时格式的小时,前导零到00
您可以保持原样并将时间列设置为VARCHAR,但这样做会失败。
答案 1 :(得分:0)
我相信你的脚本在mysqli查询上失败了,但你没有任何方法可以知道,因为没有错误报告。试试这个,看看它显示了什么。
$checkusersql = "SELECT * FROM tc_users WHERE userid = '$userid_value'";
if (!$usercheck = $link->query($checkusersql)) {
printf("Error: %s\n", $usercheck->error);
}
if ($usercheck->num_rows == 0) {
echo "Sorry, " . $userid_value . " is not a valid user ID. Please try again.";
}else {
$sql = "INSERT INTO $table (time, punchtype, groupname, dept, notes) VALUES ('$date_value','$punchtype_value', '$group_value', '$dept_value', '$notes_value')";
if (!$link->query($sql)) {
printf("Error: %s\n", $link->error);
}
}