gpt4 book ai didi

php - 尝试在 MYSQL 中执行 SELECT 语句但它不起作用

转载 作者:行者123 更新时间:2023-11-29 01:32:20 24 4
gpt4 key购买 nike

我相信我的语法是正确的,至少根据我的教科书是这样。这只是文件的一部分,因为其他信息与我的问题无关。表名是user,列名是user。我不认为这是问题所在,因为其他 sql 语句也有效。虽然这不是我所知道的最明智的做法 :) 有人看到错误了吗?

try {
$db=new PDO("mysql:host=$db_host;dbname=$db_name",
$db_user,$db_pass);
} catch (PDOException $e) {
exit("Error connecting to database: " . $e->getMessage());
}
$user=$_SESSION["user"];

$pickselect = "SELECT game1 FROM user WHERE user='$user' ";
$pickedyet = $db->prepare($pickselect);
$pickedyet->execute();
echo $pickselect;

if ($pickedyet == "0")
{
echo '<form method="post" action="makepicks.php">
<h2>Game 1</h2>......'

最佳答案

由于您似乎在使用准备好的语句,我建议您最大限度地使用它们,这样您就可以避免像 SQL 注入(inject)这样的传统问题(这是当有人将恶意 SQL 代码传递到您的应用程序时,可以通过清理来部分避免用户输入和/或使用绑定(bind)的准备好的语句)。

除此之外,您还必须实际获取查询结果才能显示它们(假设这是您的目标)。 PHP 有非常强大的文档和很好的例子。以下是一些链接:fetchAll ; prepare ; bindParam .

这是一个例子:

try
{
$db = new PDO("mysql:host=$db_host;dbname=$db_name",
$db_user, $db_pass);
}
catch (PDOException $e)
{
exit('Error connecting to database: ' . $e->getMessage());
}

$user = $_SESSION['user'];

$pickedyet = $db->prepare('SELECT game1 FROM user WHERE user = :user');
/* Bind the parameter :user using bindParam - no need for quotes */
$pickedyet->bindParam(':user', $user);
$pickedyet->execute();

/* fetchAll used for example, you may want to just fetch one row (see fetch) */
$results = $pickedyet->fetchAll(PDO::FETCH_ASSOC);

/* Dump the $results variable, which should be a multi-dimensional array */

var_dump($results);

编辑 - 我还假设有一个名为“user”的表,其中有一个名为“user”的列和另一个名为“game1”的列(即你的 SQL 语句是正确的,除了绑定(bind)参数的使用)。

关于php - 尝试在 MYSQL 中执行 SELECT 语句但它不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8219739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com