2013-05-31 148 views
-1

這是這裏的一個重複主題。但沒有一個有令人滿意的答案。Mysql查詢在myadmin中可用,但不在php腳本中

我的查詢是

$link = mysqli_connect($db[0],$db[1],$db[2],$db[3]); 
    if(!$link){ 
     echo mysqli_error(); 
    }else{ 
     $name = $_POST['name']; 
     $contact = $_POST['contact']; 
     $com_day = $_POST['com_days']; 
     $dept = $_POST['dept']; 
     $sql = "CALL mem_add_id('".$dept."');"; 
     $result = mysqli_query($link,$sql); 
     $new_id = mysqli_fetch_array($result); 
     if(!isset($new_id[0])){ $new_id[0] = 1;} 
     $wrk_id = $dept."-".$new_id[0]; 
     $sql = "INSERT INTO `db_workers`(`id`, `name`, `contact`, `committed_days`, `department`) VALUES ('".$wrk_id."','".$name."','".$contact."',".$com_day.",'".$dept."')"; 
     $result = mysqli_query($link,$sql); 
     if($result){ 
      echo '<script>show_messages("'.$wrk_id.'");</script>'; 
     } 
    } 

當我呼應了$ SQL腳本返回:

INSERT INTO `db_workers`(`id`, `name`, `contact`, `committed_days`, `department`) VALUES ('OB-1','aasd','123312412',5,'OB') 

當我粘貼在phpMyAdmin,行插入!但在PHP結果返回'假'

請注意在腳本中的問題。

Regards

編輯:上面的查詢插入正常工作。

+0

檢查失敗後檢查[$ link-> error](http://php.net/manual/en/mysqli.error.php)。 – Oswald

+0

BTW:'echo'」僅在「INSERT」查詢成功時執行。這是你的意圖嗎? '如果(!$ result)'對我來說似乎是一個更好的調試策略。 – Oswald

+0

它返回「命令不同步;你現在不能運行這個命令」 –

回答

1

mysqli_connect()總是返回一個mysqli對象。因此,mysqli_connect()的結果在布爾上下文中計算爲true。檢查mysqli::connect_errno以查看連接是否實際建立。

+0

調用過程的查詢工作並執行。只有插入的人有錯誤。但我會看看是否有任何錯誤。 –

+0

我加了「echo mysqli_connect_errno();」在if - it回聲之前'0' –

+0

是的,我錯過了你對mysqli_query()的第一次調用,所以失敗的連接嘗試不是你錯誤的原因。儘管如此,我希望我的答案是有用的。 – Oswald

0

從上面提供的答案鏈接不起作用。也許這是我的誤解或別的,但我找到了一個很好的選擇。
關閉連接並重新連接。腳本將起作用。

如果有更好的選擇,那麼請告訴。

+0

找到另一種方式,可能早先進入我的想法... 使用提取/插入數據建立連接功能。 ' 功能fetch_from_db($ db_vars,$查詢){ \t $ mysqli的= mysqli_connect($ db_vars [0],$ db_vars [1],$ db_vars [2],$ db_vars [3]); \t if(!$ mysqli){ \t \t return mysqli_connect_error(); \t} else { \t \t $ sql = mysqli_real_escape_string($ query); \t \t $ sql = $ query; \t \t $ result = mysqli_query($ mysqli,$ sql); \t \t $ get_data = mysqli_fetch_array($ result); \t \t mysqli_free_result($ result); \t \t mysqli_close($ mysqli); \t \t return $ get_data; \t} } ' –

相關問題