gpt4 book ai didi

php - 为什么我在此 PDO 插入语句中最终得到的是我的参数名称而不是它们的值?

转载 作者:行者123 更新时间:2023-11-29 14:47:54 24 4
gpt4 key购买 nike

这实际上是我使用 PDO 的第一个项目。

到目前为止,它运行得很好,但在这种特殊情况下,我最终在数据库中得到以下内容:

enter image description here

我使用的未修改的代码是这样的:

<?php
$dbh=new PDO('mysql:host=localhost;dbname=domain-me;port=3306','domain-me','****',array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SET NAMES utf8"));
$sql="
INSERT INTO payments_paypal (
tid ,
txn_id ,
item_number ,
item_name ,
mc_currency ,
mc_gross ,
payment_date ,
payment_status ,
custom ,
payer_email ,
raw_data
)
VALUES (
NULL , ':txn_id', ':item_number', ':item_name', ':mc_currency', ':mc_gross', ':payment_date', ':payment_status', ':custom', ':payer_email', ':raw_data'
);
";
$sth=$dbh->prepare($sql);
$do=$sth->execute(array(':txn_id'=>@$_POST["txn_id"],':item_number'=>$_POST["item_number"],':item_name'=>$_POST["item_name"],':mc_currency'=>$_POST["mc_currency"],':mc_gross'=>$_POST["mc_gross"],':payment_date'=>$_POST["payment_date"],':payment_status'=>$_POST["payment_status"],':custom'=>$_POST["custom"],':payer_email'=>$_POST["payer_email"],':raw_data'=>$_POST["raw_data"],));
?>

编辑:

我现在使用旧的 mysql_function 来完成它,现在它可以工作了。但是我有这个查询运行得很好:

$sql = "INSERT INTO users ( puid,refcode,extuid, login,login_proxy, pass, email) 
VALUES (:puid,:refcode,:extuid,:login,:login_proxy,:pass,:email);";
$sth = $dbh->prepare($sql);

$do = $sth->execute(
array(
':puid' => $refuser,
':refcode' => crc32(uniqid('')),
':extuid' => md5(uniqid('')),
':login' => $_POST['login'],
':login_proxy' => $_POST['login'],
':pass' => sha1($_POST['pass']),
':email' => $_POST['email'] ,
)
);

最佳答案

我相信在执行 INSERT 或 UPDATE 时,您需要在插入值数组中指定不带冒号的名称。试试这个:

<?php
$dbh=new PDO('mysql:host=localhost;dbname=domain-me;port=3306','domain-me','****',array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SET NAMES utf8"));
$sql="
INSERT INTO payments_paypal (
tid ,
txn_id ,
item_number ,
item_name ,
mc_currency ,
mc_gross ,
payment_date ,
payment_status ,
custom ,
payer_email ,
raw_data
)
VALUES (
NULL , ':txn_id', ':item_number', ':item_name', ':mc_currency', ':mc_gross', ':payment_date', ':payment_status', ':custom', ':payer_email', ':raw_data'
);
";
$sth=$dbh->prepare($sql);
$do=$sth->execute(array('txn_id'=>@$_POST["txn_id"],'item_number'=>$_POST["item_number"],'item_name'=>$_POST["item_name"],'mc_currency'=>$_POST["mc_currency"],'mc_gross'=>$_POST["mc_gross"],'payment_date'=>$_POST["payment_date"],'payment_status'=>$_POST["payment_status"],'custom'=>$_POST["custom"],'payer_email'=>$_POST["payer_email"],'raw_data'=>$_POST["raw_data"],));
?>

关于php - 为什么我在此 PDO 插入语句中最终得到的是我的参数名称而不是它们的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6481160/

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