我一直试图从表单中插入一个数据样本,但是在执行$result时总是出现语法错误。
index.php中的相关部分:
<form method="post" action="form.php">
<ul >
<li>
<label for="accession_number">Accession Number</label>
<input id="accession_number" name="accession_number" type="text" maxlength="6" value=""/>
</li>
</ul>
</form>
以及form.php中的部分:
<?php
$connection = mysql_connect($server, $username, $password) or die('Could not connect'.mysql_error());
mysql_select_db($database, $connection) or die("Cannot select db.");
$accession_number = $_POST['accession_number'];
$query = "INSERT INTO top (accession_number) ".
"VALUES ($accession_number)";
var_dump($query);
mysql_error();
$result = mysql_query($$query, connection) or die('Error querying database.');
mysql_close($connection);
?>
我不知道我做错了什么。
最佳答案
mysql_query()
的参数顺序错误。
这个
$result = mysql_query($connection, $query)
应该是
$result = mysql_query($query, $connection)
http://php.net/manual/en/function.mysql-query.php
资源mysql_query(字符串$query[,资源$link_identifier])
更新
当我说use
mysql_error()
时,我的意思是只有在存在明显错误的情况下。试试这样的if (isset($_POST['accession_number'])) {
$accession_number = $_POST['accession_number'];
$query = sprintf('INSERT INTO `top` (accession_number) VALUES (%d)',
$accession_number);
$result = mysql_query($query);
if (false === $result) {
throw new Exception('Error in query you have, hmmm: ' . mysql_error());
}
// and so on
我强烈建议完全放弃MySQL库,转而使用PDO。写上面的代码让我觉得脏兮兮的。