我在这里使用PDO进行INSERT。它似乎不起作用......
$sql = "INSERT INTO client_cards
SET cc_num = ?,
cc_cvv = ?,
cc_month = ?,
cc_year = ?,
cfname = ?,
clname = ?,
caddress = ?,
ccity = ?,
cstate = ?,
ccountry = '212',
czip = ?,
`default` = ? ,
client_id = ?";
$query = $db->prepare($sql);
$array = array($enc_cc_num, $enc_cc_ccv, $exp_month, $exp_year, $fname, $lname, $address, $city, $state, $zip, $set_default, $client_id);
$query->execute(array($array));
PDO是否仅适用于INSERT INTO表(键,键,键) VALUES ($ value,$ value,$ value), 但不能使用INSERT INTO表 SET key = $ value ??
答案 0 :(得分:4)
您需要为execute()
方法提供一组值。相反,你只给它一个值;一个数组:
$array = array($enc_cc_num, $enc_cc_ccv, $exp_month, $exp_year, $fname, $lname, $address, $city, $state, $zip, $set_default, $client_id);
$query->execute(array($array));
您只需要:
$array = array($enc_cc_num, $enc_cc_ccv, $exp_month, $exp_year, $fname, $lname, $address, $city, $state, $zip, $set_default, $client_id);
$query->execute($array);
^^^^^^ here
当您打开数据库连接时,应该告诉PDO在出现问题时抛出异常,以便您可以轻松捕获这些错误。
例如:
$opt = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
$db = new PDO($dsn, $user, $password, $opt);
答案 1 :(得分:0)
我们这里的错误是插入查询的语法,因为SET在UPDATE查询中使用而不是在INSERT中,我们的查询将是这样的: 插入
准备好的陈述基本上是这样的:
INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );
我们也可以在这里得到一些基本的教师http://www.w3schools.com/php/php_mysql_prepared_statements.asp