-1

I'm having issues entering data from a php form on my local host into MySQL. I will post the code below.

$zip = $_POST['zip'];
$city = $_POST['city'];
$sql = "INSERT INTO zipcodes (zip, city) VALUES ('$zip', '$city')";

if (mysqli_query($con,$sql))
{
echo "Order Details DB Updated successfully";
}
else
{
echo "Error creating database: " . mysqli_error($con);
}

I have $con declared above, and the connection works.

It shows that I connect to my DB correctly, but it just isn't entering the correct data that I type into the form. I'm not sure why it wouldn't enter when I have the correct connection. Any help would be appreciated. Thank you!

4

1 回答 1

0

一些可能有帮助的调试步骤: 1) 确保表单实际上被提交到脚本,使用顶部的语句 if (count($_POST) > 0) exit('form submit');

如果失败了,那么你的表单就不会命中脚本。确保您的标签属性在 HTML 页面中是正确的。

2) 在构建 SQL 语句之前添加这些行: exit( print_r( $_POST, 1 ) );

确保 POST 超级全局包含您输入到表单字段中的数据。

据推测,这两个步骤之一将揭示您的问题。如果没有,那么试试这个: 在页面顶部,执行: phpinfo(); 出口();

在网络浏览器中加载它,并在页面上搜索“mysqli”,并确保您的 php 安装支持 mysqli。

如果您确实有 mysqli,但仍然无法正常工作,请确保您的表中没有设置为 NOT NULL 的列,并且没有与之关联的默认值。如果是这种情况,您必须在查询中包含此字段,或将其更改为具有默认值。

PS。您真的不应该将原始用户数据注入 SQL 查询。如果您有 mysqli 支持,请改用准备好的语句。一开始它们可能看起来有点陌生,但一旦你习惯了它们,你就再也不会回去了。

聚苯乙烯。不要使用面向功能的方法来处理 mysqli,而是使用面向对象的接口。它更友好一点,而且 IMO 更容易调试。

购买力平价。如果所有这些都失败了,请从数据库中获取最后一个错误。

干杯

于 2013-11-07T00:46:14.637 回答