2012-02-08 25 views
-1

我正在嘗試從PHP腳本中搜索SQL表。 SQL表是一個單詞列表,在PHP中,我調用一個Python腳本來完成給定單詞的排列。一切工作,直到我真的去執行mysql_query。我需要一些關於如何將多個值傳遞給Select語句的格式建議。從我看到它需要的形式('a','b','c',...),這是它如何格式化,但我沒有得到實際執行的回報。使用PHP腳本從SQL表中返回值

<?php 
ini_set('display_errors','On'); 
error_reporting(E_ALL); 
$con= mysql_connect("127.0.0.1","app",""); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
mysql_select_db("wordlookup"); 


//Retrieve the data. 
$word = $_POST['data']; 


$perm = exec("python comb.py $word"); 

$query="SELECT * FROM words WHERE IN (" .$perm. ")"; 
print $query; 
$sql=mysql_query($query); 
print $sql; 



mysql_close($con); 
?> 

這是所有的PHP文件中,從Python調用的輸出將在「A」,「B」,「C」 ......格式和隨機打印只是調試。 print $ sql目前實際上並沒有發佈任何內容。 謝謝, 凱爾

+0

你沒有做任何錯誤檢查。將錯誤檢查添加到代碼中,並查看它在哪裏(以及爲什麼)死亡。 – 2012-02-08 06:40:19

+0

使用'$ sql1 = mysql_fetch_array($ sql)'或'$ sql1 = mysql_fetch_object($ sql)'。根據記錄號使用for循環。 – Arung 2012-02-08 06:40:50

回答

2
SELECT * FROM words WHERE IN (...) 

您的查詢缺少的條件。 WHERE什麼IN ...?你需要在那裏填寫一個專欄名稱。

此外,如果查詢不工作,要求數據庫爲什麼沒有奏效:

$result = mysql_query($query); 
if (!$result) { 
    echo mysql_error(); 
} 
+0

引導我去修復它的方法,不得不增加一些東西來完成它的工作。 – thekgb09 2012-02-08 07:21:37

0

雖然解決方案是奇怪的(通過使用EXEC執行的外部腳本來計算排列?),我'd回答你確切的問題。

$perm_arr = explode(' ', $perm); 
function quote($str) { return "'$str'"; } 
$perm_arr = array_map('quote', $perm_arr); 
$sql = "select * from words where word in (" . join(', ', $perm_arr) . ")";