PHP / MYSQL使用名称从数据库中获取user_id

时间:2013-11-21 21:54:53

标签: php mysql

我看了一遍,无法找到问题的解决方案,所以我在这里。我正试图从表单中获取用户的名称。从那个名称我试图让用户ID在另一个表中发布。当我这样做时,表中的值为“0”。

这是代码:

$to_name = trim($_POST['to_name']);

$get_to_id = "SELECT user_id FROM users WHERE name = " . $to_name;
$gti = mysql_query($get_to_id);
if($gti) {
$abc = mysql_fetch_array($gti);
$to_id = $abc['user_id'];
}

当我将其插入表格时,它不会显示用户ID。任何帮助都会很棒。提前谢谢。

2 个答案:

答案 0 :(得分:1)

$get_to_id = sprintf("SELECT user_id FROM users WHERE name = '%s' ",$to_name);

答案 1 :(得分:0)

你不应该使用`mysql_query`

所有mysql_*函数都已弃用 - 这意味着它很快就会被包含在语言中,并且您的代码将被破坏。给予您的任何建议,包括使用mysql_query功能都是错误建议,并且应该被忽视。

请参阅文档,并注意大红色警告:http://php.net/manual/en/function.mysql-query.php

请改用PDO。它很容易设置,你根本不需要改变任何东西。

// note: untested code follows
$pdo = new PDO('mysql:host='.$host.';dbname='.$db_name, $db_username, $db_password);
$statement = $pdo->prepare('
    SELECT 
        user_id 
    FROM 
        `users` 
    WHERE 
        `name` = :name
');

$result = $statement->execute(array(
    'name'=>trim($_POST['to_name'])
));
$to_id = $result ? $statement->fetchColumn() : false;

// now, check for failure before moving on!
if (!$result || !$to_id){
    // tip: do something nicer than die to handle this failure.
    die('Error occurred'.implode(":",$pdo->errorInfo()));
}

// everything is ok, code continues....

文档