我得到这个代码工作,主要是。我在发布comp_id而不是公司名称的位置存在问题。为什么在发布公司名称时发布该ID?
我不明白为什么。有人可以看看这段代码,告诉我错误在哪里吗?
该表是comp,字段是comp_id和名称。
测试页:http://kaboomlabs.com/PDI/test4.php
我知道我失去了一些东西,但我在此代码一直盯着太久,我没有看到明显的错误了。谢谢。
<?php
require_once('connectvars.php');
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
or die('Error connecting to MySQL .');
if (isset($_POST['submit'])) {
$comp = mysqli_real_escape_string($dbc,$_POST['comp']);
}
//Access the Database
if (!empty($comp)) {
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
or die('Error connecting to MySQL server.');
$query = "INSERT INTO ncmr (comp) VALUES ('$comp')";
$data = mysqli_query($dbc, $query) or die("MySQL error: " . mysqli_error($dbc) . "<hr>\nQuery: $query");
mysqli_close($dbc);
}
echo "<form method='post'>";
echo '<fieldset>';
echo'<div id="comp">';
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$mysqli->select_db('comp');
echo '<span class="b">Company: </span>';
$result = $mysqli->query("SELECT * FROM comp");
$i = 0;
echo "<SELECT name='comp'>\n";
while($row = $result->fetch_assoc()) {
if ($i == 4) echo '<option value="lines">-----</option>';
echo "<option value='{$row['name']}'>{$row['name']} </option>\n";
$i++;}
echo "</select>\n";
echo '</div>';
echo '<div id="button"><input type="submit" value="Submit NCMR" name="submit" /></div>';
echo '</fieldset>';
echo '</form>';
?>
那么...不要只是盯着代码。做一些积极的调试,例如检查浏览器中生成的HTML,使用'var_dump()'显示接收到的post值,检查生成的SQL代码... – 2011-12-30 13:43:55
您在页面上收到'mysqli_real_escape_string()'警告。 mysqli_connect();函数中的第一个参数是链接标识符吗? – sooper 2011-12-30 13:47:33
@Sooper,我不知道。我也注意到了。 @阿尔瓦罗,怎么样? – 2011-12-30 13:51:36