![](/img/trans.png)
[英]Fatal error: Call to undefined function new_mysqli() in C:\wamp\www\work\conn.php on line 8
[英]PHP mysqli $conn function didnt work
我试图将简单数据发送到使用xampp创建的数据库(端口更改为81,没有密码...)。 在将数据插入数据表单并提交之后,控制台日志会发送适当的值,但数据库不会在localhost和php的片段上更新:$ stmt = $ conn-> stmt_init();
<?php
$conn = new mysqli('localhost:81', 'root', '', 'my_db');
$query = "INSERT into komentarze('name', 'email', 'comments') VALUES ($name, $email, $comments)";
$stmt = $conn->stmt_init();
if($stmt->prepare($query)) {
$stmt->bind_param('sss', $_POST['name'], $_POST['email'], $_POST['comments']);
$stmt->execute();
}
?>
所示的php代码片段被放入带有id =“ response”的新创建的p元素中:
<script type="text/javascript">
$(document).ready(function() {
$('#submit').click(function() {
var name = $('#name').val();
var email = $('#email').val();
var comments = $('#comments').val();
$.ajax({
url: 'submit_to_db.php',
type: 'POST',
data: {'name=': name,
'email=': email,
'comments=': comments },
//data: 'name=' + name + '&email=' + email + '&comments=' + comments,
success: function(result){
$('#response').remove();
$('#container').append('<p id="response">' + result + '</p>');
}
});
return false;
});
});
</script>
我已经向数据库添加了静态值,并且在$ stmt-> affected_rows与否之间回显了msg,什么也没有发生; /
使用mysqli时,需要将$name
, $email
等替换为?
。 相关代码应如下所示:
$query = "INSERT into komentarze('name', 'email', 'comments') VALUES (?, ?, ?)";
...
$stmt->bind_param('sss', $_POST['name'], $_POST['email'], $_POST['comments']);
该语句有两个问题:
$query = "INSERT into komentarze('name', 'email', 'comments') VALUES ($name, $email, $comments)";
列名应用反引号括起来,即`,而不是撇号。
这些值应为占位符,而不是变量,即?, ?, ?
。
这应该解决两个问题:
$query = 'INSERT INTO komentarze(`name`, `email`, `comments`) VALUES (?, ?, ?)';
我可以看到两个问题。 两者都与查询参数的绑定有关。
绑定变量时,即'$_POST
,必须在SQL
语句中用其实际值替换占位符。 因此,您的查询将如下所示:
$query = "INSERT into komentarze('name', 'email', 'comments') VALUES (?,?,?)";
其次,您需要通过为每个变量调用对bind_param
后续调用来确保将每个值绑定到查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.