问题描述
||
我一直在尝试从表单中插入示例数据,但是执行$ 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/zh/function.mysql-query.php
资源mysql_query(字符串$ query [,资源$ link_identifier])
更新资料
当我说使用“ 5”时,我的意思是仅当出现明显错误时。试试这个
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。编写以上代码使我感到肮脏。