所以我只是从ajax POST获取数据到php api,并尝试将其保存在数据库中。我的表具有a_id,a_owner,a_material,a_size,a_product。
所需的数据已正确传递到api,但无法保存。
这是我的sql语句。另外,我不确定我是否正确使用了$ owner变量。谢谢你们
$owner = "SELECT 'u_id' FROM 'user' WHERE 'u_email' = $data['email']";
$sth = $dbh -> prepare("INSERT INTO object (a_id, a_owner, a_material, a_size, a_product) SELECT MAX(a_id)+1, :owner, :material, :size, :product FROM object");
$sth->bindParam(':owner', $owner, PDO::PARAM_INT);
$sth->bindParam(':material', $data["material"], PDO::PARAM_INT);
$sth->bindParam(':size', $data['size'], PDO::PARAM_INT);
$sth->bindParam(':product', $data['product'], PDO::PARAM_INT);
$sth->execute();
更新资料
所以我想我坚持的地方是获取“所有者”信息。
为了明确起见,所有者属于对象表,其值与用户表中的用户ID相同。用户表也有一个电子邮件列。那么,如何引用电子邮件以获取用户ID并将其保存到我的对象表中的所有者中?
最佳答案
您的SQL语句格式错误,请尝试以下操作:
$sth = $dbh -> prepare("
INSERT INTO object
(a_id, a_owner, a_material, a_size, a_product)
VALUES
(
(SELECT MAX(a_id)+1 FROM object),
(SELECT u_id FROM user WHERE u_email = :email),
:material,
:size,
:product
)
");
$sth->bindParam(':email', $data['email'], PDO::PARAM_STR);
$sth->bindParam(':material', $data["material"], PDO::PARAM_INT);
$sth->bindParam(':size', $data['size'], PDO::PARAM_INT);
$sth->bindParam(':product', $data['product'], PDO::PARAM_INT);
$sth->execute();
关于php - 无法执行mysql语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34754329/