<?php
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "sweepstakes";
$db = mysqli_connect($dbhost,$dbuser,$dbpass, $dbname);
if(mysqli_connect_errno()){
die("Database connection failed: " .
mysqli_connect_errno() .
" (" . mysqli_connect_errno() . ")"
);
}
if($_SERVER['REQUEST_METHOD']=='POST'
&& $_POST['submit']=='Submit'
&& !empty($_POST['name'])
&& !empty($_POST['description'])
&& !empty($_POST['adress'])) {
$name = $_POST['name'];
$desc = $_POST['description'];
$adress = $_POST['adress'];
$query = "INSERT INTO alfa (name, description, adress) VALUES ('$name', '$desc', '$adress')";
$result = mysqli_query($db, $query);
if($result){
}else{
die("Database query failed." . mysql_error() . " " . mysqli_connect_error($db));
}
} else { echo "Empty!";
}
?>
<form method="post" action="index.php">
<fieldset>
<legend>New Sweepstakes</legend>
<label>Name: </br>
<input type="text" name="name" maxlength="150" />
</label> </br>
<label>Description:</br>
<textarea name="description" cols="45" rows="10"></textarea>
</label> </br>
<label>Adress:</br>
<input type="text" name="adress" maxlength="1080" />
</label> </br>
<input type="submit" name="submit" value="Submit" />
</fieldset>
</form>
答案 0 :(得分:0)
您正在混合mysql
和mysqli
个功能。坚持使用mysqli
,mysql
已被弃用(请勿使用它)。
如果您没有发现它:mysql_error()
应为mysqli_error()
答案 1 :(得分:0)
除了检查Halcyon写的内容(使用mysqli_error()
)之外,我还会检查查询字符串本身。只需在它构建完成后立即回显$ query($query = "INSERT..."
行),并在运行脚本时查看输出是否符合您预期的结果,即您看到{{1}之类的内容}。如果有任何不合适的地方(例如,您可能在输入的数据中有&#39;或&#34;并且它正在搞乱字符串输出),请修复它并再试一次。
INSERT INTO alfa (name, description, adress) VALUES ('fred', 'blonde dude', 'Anywhere 32B')
以及echo
和print
是您在新代码上进行侦探工作时的朋友,以了解预期的输出结果。
(适用编辑)强>
在用Halcyon阅读更新后,您应该检查自动增量字段的设置方式。例如,如果你已经修改了一段时间,但只将自动增量字段设置为INT(2),那么数字的空间可能已经用完(对于INT,最多只能达到99) 2))。将其增加到INT(11)或类似的东西,清空表格,然后再试一次。您还可以尝试print_r()
table_name ALTER TABLE
重置自动编号。