gpt4 book ai didi

php - 如何正确使用PDO

转载 作者:行者123 更新时间:2023-11-30 00:07:58 25 4
gpt4 key购买 nike

我正在尝试使用 PDO 来使我的脚本更加安全。我有一个演示,因此我将变量设置为此 $STH->bindParam(':ip', $ip);,然后像这样调用它

$DATA = $con->prepare("INSERT INTO users (ip) VALUES (':ip')");

问题是由于某种原因它没有进入数据库。这是我的完整代码:

<?php
$host = "localhost";
$dbname = "users";
$user = "root";
$pass = "root";


try{
$con = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
}
catch(PDOException $e){
echo $e->getMessage();
}

function generateRandomString($length = 10) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}



$ip = generateRandomString().sha1($_SERVER['SERVER_ADDR']).generateRandomString();


$STH->bindParam(':ip', $ip);

$DATA = $con->prepare("INSERT INTO users (ip) VALUES (':ip')");
$DATA->execute();

?>

是的,我知道这不是获取 IP 的方法,我只是在玩 PDO 和 MYSQL。

最佳答案

您必须在查询之后而不是之前绑定(bind)参数

 $DATA = $con->prepare("INSERT INTO users (ip) VALUES ( :ip )");
$DATA->bindValue(':ip', $ip , PDO::PARAM_STR); // if ip column is string
$DATA->execute();

some ref

关于php - 如何正确使用PDO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24356707/

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