我看了一遍,无法找到问题的解决方案,所以我在这里。我正试图从表单中获取用户的名称。从那个名称我试图让用户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。任何帮助都会很棒。提前谢谢。
答案 0 :(得分:1)
$get_to_id = sprintf("SELECT user_id FROM users WHERE name = '%s' ",$to_name);
答案 1 :(得分:0)
所有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....
文档
PDO::prepare
- http://us1.php.net/manual/en/pdo.prepare.php PDOStatement::execute
- http://www.php.net/manual/en/pdostatement.execute.php PDOStatement::fetchColumn
- http://www.php.net/manual/en/pdostatement.fetchcolumn.php PDO::errorInfo
- http://us1.php.net/manual/en/pdo.errorinfo.php