使用PHP脚本从SQL表返回值

时间:2012-02-08 06:33:27

标签: php mysql sql

我正在尝试从PHP脚本中搜索SQL表。 SQL表是一个单词列表,在PHP中我调用Python脚本来执行给定单词的排列。一切正常,直到我真正去执行mysql_query。我需要一些关于如何将这么多值传递给Select语句的格式化建议。从我看到它需要的形式('a','b','c',...),这是它的格式,但我没有获得实际执行的回报。

<?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'...格式,随机打印只是调试。打印$ sql目前实际上没有任何东西。 谢谢, 凯尔

2 个答案:

答案 0 :(得分:2)

SELECT * FROM words WHERE IN (...)

您的查询缺少条件。 WHERE 什么 IN ...?你需要在那里填写一个列名。

此外,如果查询无效,请询问数据库为什么它不起作用:

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

答案 1 :(得分:0)

虽然解决方案很奇怪(使用exec执行外部脚本来计算排列?),我会回答你的确切问题。

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