繁体   English   中英

从数据库发布数据

[英]Posting data from Database

我正在验证表单(检查字段是否为空等,最后我使用的是最后一条验证规则:

//Database Information
//Connect to database

mysql_connect($dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
mysql_select_db($dbname)or die(mysql_error());

$email = mysql_real_escape_string($_POST['email']);
$cust_code = mysql_real_escape_string($_POST['cust_code']);

//validation e.g.
if (empty($email) + empty($cust_code) > 1){
....

//if everything is ok
$sql = "SELECT * FROM clients WHERE ID='$cust_code'";
$result = mysql_query($sql);
if(mysql_num_rows($result) > 0){
$data = mysql_num_rows($result);

//get all fields from db and do something

}else{
//My error that is showing up
echo "<span class=\"difftext\">The customer code you have entered is not valid!
<br />
Please enter a valid Customer Code to procceed!
</span>";

这有什么问题,因为即使我输入正确的cust_code,我也会收到错误信息而不是数据...

谢谢

编辑...(我删除了,因为它是错误的),你做得很好...我只是意识到我所做的...对不起...

我已经在上面更正了它。

谢谢

如何调试

  1. 不要立即将查询字符串放入mysql方法中,请先将其回显

    $ sql =“选择*来自客户端的ID ='$ cust_code'的客户端”;
    echo $ sql;
    $ res = mysql_query($ sql);

  2. 您是否已连接到数据库?

  3. 错误消息以英语书写 (如果不是MS错误消息)。 你为什么不理会他们? 放入错误消息,阅读,尝试理解错误内容。

  4. 一个建议,如果您将以这种方式编写代码,那么对于非常小的应用程序来说是可以的,对于大型的应用程序,您需要完全采用另一种方法来进行代码组织。 这是框架要解决的问题/主要问题之一。

实际上,您错了,在以下两行中您的错误就在这里:

$sql = mysql_query("SELECT * FROM clients WHERE ID='$cust_code'");
$result = mysql_query($sql);

您正在运行查询两次。
$sql第一次保留资源之后,然后就象引用字符串一样引用该资源。 要修复它,请将其更改为:

$sql = "SELECT * FROM clients WHERE ID='$cust_code'";
$result = mysql_query($sql);

您可能有更多潜在的错误,但请先解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM