目前我的一个查询存在问题 - 似乎没有将任何值插入我的数据库。以下是我用于表单提交的代码。
<?php
if (empty($_POST) === false) {
$assignment_data = array(
'title' => $_POST['title'],
'number' => $_POST['number'],
'weighting' => $_POST['weight'],
'handout' => $_POST['handout'],
'handin' => $_POST['handin'],
'feedback' => $_POST['feedback'],
'wordcount' => $_POST['wordcount'],
'brief' => $_POST['brief'],
'sub_details' => $_POST['details'],
'add_note' => $_POST['notes']
);
create_assignment($assignment_data);
//header('Location: modules.php');
//exit();
}
function create_assignment($assignment_data) {
array_walk($assignment_data, 'array_sanitize');
$fields = '`' . implode('`, `', array_keys($assignment_data)) . '`';
$data = '\'' . implode('\', \'', $assignment_data) . '\'';
$query = mysql_query("INSERT INTO `assignments` ($fields) VALUES ($data)");
echo $fields;
echo $data;
$test = mysql_query($query) or die(mysql_error());;
print $test;
}
?>
我的结果是将信息输入表单并提交:
`title`, `number`, `weighting`, `handout`, `handin`, `feedback`, `wordcount`, `brief`,
`sub_details`, `add_note`
'Dream Design', '2', '20', '07/01/2014', '08/01/2014', '08/01/2014', '2', 'asd',
'asdasd', 'asdasdasd'
Query was empty.
信息放在$ fields和$ data变量中,但似乎没有运行查询...没有任何内容插入到我的数据库中。
非常感谢任何帮助或帮助。
答案 0 :(得分:4)
你有:
$query = mysql_query("INSERT INTO `assignments` ($fields) VALUES ($data)");
然后
$test = mysql_query($query) or die(mysql_error());;
^^^^^^--- result of previous query
您不能使用查询句柄来“重新运行”查询。您需要将查询保存到变量中,然后重复使用它。 e.g。
$sql = "INSERT ...";
$query = mysql_query($sql) or die(mysql_error());
$test = mysql_query($sql) or die(mysql_error());
你的第一个查询可能失败了,返回一个布尔值为FALSE。传入另一个查询调用时,该错误将被压缩为空字符串,因此您的“空查询”错误消息。添加or die(...)
业务将告诉您究竟出了什么问题。
答案 1 :(得分:0)
您运行了mysql_connect,对吧?
尝试mysql_stat()以确保。
您还可以尝试在第一个查询中获得一些错误输出:
$query = mysql_query("INSERT INTO `assignments` ($fields) VALUES ($data)") or die(mysql_error());
请请考虑使用PDO,框架或至少mysqli _