我在第3张桌子中插入一些工作人员时遇到了问题。
表首先包含 first_id,test_name |表格第二个包含 second_id,test_second |表first-second包含 first_id,second_id,note (可以为null)
$first_id = 1;
$second_id = 3;
$stmt = $this->conn->prepare("INSERT INTO first-second (first_id, second_id) values (?, ?)");
$stmt->bind_param("ii", $first_id, $second_id);
$result_insert = $stmt->execute();
$stmt->close();
在PHPMyadmin中我可以插入但我不知道为什么stmt没有工作。
谢谢。
答案 0 :(得分:1)
我会避免用破折号定义表名,这不是一个好习惯。无论如何,只要在表格的名称之间添加反引号就可以解决问题。
这样的事情:
"INSERT INTO `table-mame` WHERE ...
答案 1 :(得分:0)
在表名周围添加反引号:
$stmt = $this->conn->prepare("INSERT INTO `first-second` (first_id, second_id) values (?, ?)");
建议不要在表名中使用“奇怪”字符。
答案 2 :(得分:0)
我假设您正在使用textbox / textarea或任何其他要求输入的数据以将数据插入数据库。您的输入可能包含特殊字符,导致查询失败。在插入查询之前尝试使用mysqli_real_escape_string
。
$input1=mysqli_real_escape_string($_POST['input1']);
$input2=mysqli_real_escape_string($_POST['input2']);
$input3=mysqli_real_escape_string($_POST['input3']);
mysqli_query($conn,"INSERT INTO first-second (first_id, second_id, note) VALUES ('$input1','$input2','$input3')");
顺便说一句,在表名中使用连字符是可以的,但不推荐:
Can a table field contain a hyphen?
答案 3 :(得分:0)
$first_id = 1;
$second_id = 3;
$stmt = $this->conn->prepare("INSERT INTO first-second (first_id, second_id) values (:f1, :f2)");
$result_insert = $stmt->execute(array('f1'=>$first_id , 'f2'=>$second_id));
$stmt->close();
希望得到这个帮助。
由于