我知道这个问题非常频繁,但是我浪费了很多时间,但它仍然没有用。我们正在尝试插入一行,但它无法正常工作。
这是代码:
<?php
class DAL{
private $srvname='localhost';
private $username='i110546';
private $password='2349058';
private $bdname='i110546';
function insert_log($url){
$conn = new mysqli($srvname, $username, $password, $bdname);
if (mysqli_connect_errno()) {
printf("Conexao falhada: %s\n", mysqli_connect_error());
return NULL;
}
$query = "INSERT INTO `log` (`url`) VALUES (?)";
$test = $conn->prepare($query);
$test->bind_param('ss',$url);
$test->execute();
$test->close();
$conn->close();
}
}
?>
任何人都知道该怎么做?
答案 0 :(得分:0)
您只有一个参数,但在您的绑定调用中,您有2个字符串参数ss
。
应该是一个:
$test->bind_param('s',$url);
检查错误。
答案 1 :(得分:0)
$test->bind_param('ss',$url);
你绑定两个两个字符串(ss)但只提供一个,而你的语句只包含一个占位符,我的猜测是你想要的行是
$test->bind_param('s',$url);
此外,您以错误的方式处理您的媒体资源,需要使用$ this-&gt; variable_name在方法(函数)中进行处理,因此请将您的行修改为此
$conn = new mysqli($this->srvname, $this->username, $this->password, $this->bdname);