从数据库发布数据

时间:2011-07-23 12:44:40

标签: php

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

//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,我也会收到错误消息而不是我的数据......

谢谢

编辑...(我删除了,因为它错了)你还不错......我只是实现了我的意思......抱歉......

我已在上面纠正过。

谢谢

2 个答案:

答案 0 :(得分:2)

如何调试

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

    $ sql =“SELECT * FROM clients WHERE ID ='$ cust_code'”;
        echo $ sql;
        $解析度=的mysql_query($ SQL);

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

  3. 错误消息以英文编写(如果不是MS错误消息)。你为什么不理睬他们?提出错误信息,阅读,尝试理解它的内容。

  4. 建议,如果您将以这种方式编写代码,对于非常小的应用程序是可以的,对于大型应用程序,您需要对代码组织采取不同的方法。这是问题/主要问题框架正试图为您解决的问题之一。

答案 1 :(得分:1)

实际上,你错了,你的错误在这里,在这两行:

$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);

您可能有更多潜在错误,但请先修复此错误。