mysql_query
送出一个 query 字串。语法: int mysql_query(string query, int [link_identifier]);传回值: 整数函式种类: 资料库功能内容说明 本函式送出 query 字串供 MySQL 做相关的处理或者执行。若没有指定 link_identifier 参数,则程式会自动寻找最近开启的 ID。当 query 查询字串是 UPDATE、INSERT 及 DELETE 时,传回的可能是 true 或者 false;查询的字串是 SELECT 则传回新的 ID 值。[email protected] (09-Feb-1999) 指出,当传回 false 时,并不是执行成功但无传回值,而是查询的字串有错误。
---------------
从PHP手册中抄来的.由上可知,通过mysql_query()执行后的返回值就可以知道成功与否.....

解决方案 »

  1.   

    我感觉好象不是这样的,传回true或false只是说你的sql语句是否有错,而不是语句是否被正确执行!可能你的sql已经传到数据库,但数据库并没有正确执行!!
    但我也不知道如何能知道:(
    用mysql_affect_rows试试吧。
      

  2.   

    vitty(天狼) 說的不對 .
    sybase_query() 的返回值就能判斷是否正確執行 . 因為 sql 語句是否有錯是由數據庫引擎判斷的,而不是由 php 判斷。不同的數據庫語法都有些區別 .
      

  3.   

    xxxxx_affect_rows 函數只是受影響的紀錄數,
    例如, 一個 sql update 語句,執行後,可能沒有滿足 where 條件的紀錄,所以沒有一個紀錄被 update ,但 sql 語句確實成功的執行了 .
      

  4.   

    die(mysql_error());
    这句返回你所需的错误
      

  5.   

    sql当然是由数据库判断其正确与否,但是,怎么区分以下两种过程:
    一、php送出sql语句->数据库接收sql->数据库判断sql语句的正确性->将判断结果返回php->执行sql语句。
    二、php送出sql语句->数据库接收sql->数据库判断sql语句的正确性->执行sql语句->返回语句执行成功与否。我对数据库内部的情况并不了解,只是从语义上理解可能是第一种情况,但我自己还想不出什么方法证明:(
    不知对数据库内部执行过程了解的朋友设计一个程式,来证明到底是哪一种情况。
      

  6.   

    最好的办法,就是把sql语句输出来,然后copy到相关的数据库中去执行
    数据库就会报错。
      

  7.   

    sybase_fetch_array(int result);
    用它比较好update时会得到正确结果,比如不满足where条件时,但update确实成功了。
      

  8.   

    用$query,看看帮助文件
    或者干脆读一下修改或者添加的东西不就知道了
      

  9.   

    vitty(天狼) 說的還是不對 . SORRY :-)
    php送出sql语句->数据库接收sql->数据库判断sql语句的正确性
    if 錯誤  返回錯誤代碼 ( 和錯誤信息 對於Mysql 用 mysql_error() 取得)
    else  {
       語句优化,(根據所建立的索引)
       執行SQL 語句
       返回執行結果 .
    }
    而不是先返回結果,再執行SQL語句.( 需要證明嗎? )
    vitty(天狼) 的 
    一、php送出sql语句->数据库接收sql->数据库判断sql语句的正确性->将判断结果返回php->执行sql语句。
    在 邏輯上就不正確。分析如下 :
    php送出sql语句->数据库接收sql->数据库判断sql语句的正确性->将判断结果返回php
    這時,如果正確也返回,告訴php,sql 語句非常正確.
    執行完sql語句還需要返回一次結果集。
    有哪個php 函數可以返回兩此的呢?
      

  10.   

    jekend(jekend) :
    我同意你的观点了,特别是上面那段“代码”。
    在我发前一个贴子时,就觉得好象有点问题,但看不出是哪的问题,你的回答说出了问题所在。
    谢谢:)
      

  11.   

    if(mysql_query($sql)) echo "success!";
    else echo mysql_error();