我正在尝试从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目前实际上没有任何东西。 谢谢, 凯尔
答案 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) . ")";