Php 根据用户从表单输入创建数据库查询?

Php 根据用户从表单输入创建数据库查询?,php,mysql,forms,Php,Mysql,Forms,我有一个HTML表单,允许用户编写他们想要搜索的内容。在本例中是一个名称 表单可以工作,但它在php中。我不知道我必须写什么才能让MySQL在数据库中搜索用户输入的内容 这是我被卡住的地方: $result = mysql_query("SELECT * FROM {$table} WHERE name = 'What do i gonna write here? (take away the ' "); 我使用的是PHP5。这应该可以让您开始使用mysqli。可以找到手册 $sf = str

我有一个HTML表单,允许用户编写他们想要搜索的内容。在本例中是一个名称

表单可以工作,但它在php中。我不知道我必须写什么才能让MySQL在数据库中搜索用户输入的内容

这是我被卡住的地方:

$result = mysql_query("SELECT * FROM {$table} WHERE name = 'What do i gonna write
here? (take away the ' ");

我使用的是PHP5。

这应该可以让您开始使用mysqli。可以找到手册

$sf = stripslashes($_REQUEST['search']);
$sf = mysql_real_escape_string($sf);


$result = mysql_query("SELECT * FROM {$table} WHERE name = '". $sf."'");
while($row = mysql_fetch_array($result)){
    //do stuff
}
这假设您正在发布表单,否则您可以将$\u POST更改为您将要使用的任何请求变量。在调用mysqli_real_escape_string之前或之后对表单变量进行一些健全性检查在生产环境中也非常有用(必需)

$db = new mysqli("localhost","user","password","database");

if(mysqli_connect_error())
{
    printf("Connection failed:%s \n",mysqli_connect_error());
    exit();
}

$name = mysqli_real_escape_string($db, $_POST['search']);
$table = 'some_table';

if($result = $db->query("SELECT * FROM $table WHERE name = $name", MYSQLI_ASSOC))
{
    while($row = $result->fetch_object())
    {
        // $row is an associative array
        // Do something here
    }
}
$db->close();

表单方法是post还是get?输入名称是什么?您需要结果输出方面的帮助吗?表单方法是Post,输入名称是:search,是的,我需要Where name=PART的帮助虽然这可能会起作用,但这非常危险,永远不应该用作示例。问题不在于如何从SQL注入中获得安全,而在于如何只编写查询。我会(可能是愚蠢地)假设任何使用mysql的人都已经知道如何去掉斜杠和所有这些好东西。下一次在你给出答案之前,请阅读这个问题-1我会说,因为他的问题太基本了,他可能不知道。除此之外,其他对PHP一无所知的人可能会无意中发现这一点。你不同意我的答案是可以的,如果你a)提供一个更好的例子,或者b)提供一个指向资源的链接,证明为什么应该使用另一种方式而不是使用mysql\u查询,那么a-1也是可以的。你不是上帝,我们不能相信你的话。这是正确的,我正在举一个例子。谢谢,效果很好,但是如何以保存的方式输出结果,如果mysql中的result=null部分,谢谢你,我真的很感谢你的帮助和好意:)你的问题是如何查询数据库,而不是如何输出结果。你需要做一些研究。