bind_param问题PHP编写插入语句
我有一个用户注册表单 ,然后插入到数据库但其抛出了一个绑定PARAM错误bind_param问题PHP编写插入语句
if(isset($_POST['submit'])){
// Login Query
// Connection
$mysqli = new mysqli("localhost", "root", "", "pg");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
// Query
$query = "INSERT INTO `affiliates` (aid,affname,title,fname,lname,add1,add2,add3,city,county,country,pcode,email,password,paymethod) VALUES (,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$stmt = $mysqli->prepare($query);
$stmt->bind_param('ssssssssssssss',$_POST['affname'],$_POST['title'],$_POST['fname'],$_POST['lname'],$_POST['add1'],$_POST['add2'],$_POST['add3'],$_POST['city'],$_POST['county'],$_POST['country'],$_POST['pcode'],$_POST['email'],$_POST['password'],$_POST['paymethod']); // If 2x Variables are used etc 's' would become 'ss',$_GET['VAR'],$_GET['VAR']
// Bind Results
$stmt->execute();
//$result = $stmt->get_result()->fetch_all();
}
我不能工作了什么是错谁能帮助 感谢
更新的表单&查询代码
<form id="form1" name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<p>
<label for="textfield"></label>
<input type="text" name="affname" id="textfield" />
</p>
<p>
<label for="textfield"></label>
<input type="text" name="title" id="textfield" />
</p> <p>
<label for="textfield"></label>
<input type="text" name="fname" id="textfield" />
</p> <p>
<label for="textfield"></label>
<input type="text" name="lname" id="textfield" />
</p> <p>
<label for="textfield"></label>
<input type="text" name="add1" id="textfield" />
</p> <p>
<label for="textfield"></label>
<input type="text" name="add2" id="textfield" />
</p> <p>
<label for="textfield"></label>
<input type="text" name="add3" id="textfield" />
</p> <p>
<label for="textfield"></label>
<input type="text" name="city" id="textfield" />
</p> <p>
<label for="textfield"></label>
<input type="text" name="county" id="textfield" />
</p> <p>
<label for="textfield"></label>
<input type="text" name="country" id="textfield" />
</p> <p>
<label for="textfield"></label>
<input type="text" name="pcode" id="textfield" />
</p> <p>
<label for="textfield"></label>
<input type="text" name="email" id="textfield" />
</p>
<p>
<label for="textfield"></label>
<input type="text" name="password" id="textfield" />
</p>
<p>
<label for="textfield"></label>
<input type="text" name="paymethod" id="textfield" />
<input type="hidden" value="" name="aid" />
</p>
<p>
<input type="submit" name="submit" id="submit" value="Submit" />
</p>
</form>
<?php
if(isset($_POST['submit'])){
// Login Query
// Connection
$mysqli = new mysqli("localhost", "root", "", "pg");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
// Query
$query = "INSERT INTO `affiliates` (aid,affname,title,fname,lname,add1,add2,add3,city,county,country,pcode,email,password,paymethod) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$stmt = $mysqli->prepare($query);
$stmt->bind_param('sssssssssssssss',$_POST['aid'],$_POST['affname'],$_POST['title'],$_POST['fname'],$_POST['lname'],$_POST['add1'],$_POST['add2'],$_POST['add3'],$_POST['city'],$_POST['county'],$_POST['country'],$_POST['pcode'],$_POST['email'],$_POST['password'],$_POST['paymethod']); // If 2x Variables are used etc 's' would become 'ss',$_GET['VAR'],$_GET['VAR']
// Bind Results
$stmt->execute();
//$result = $stmt->get_result()->fetch_all();
}
我修改了查询,现在已经被传递 瓦尔正确的金额不过现在没有显示出错误,但也可以作为你的援助autocremented只是查询改变这一点,没有必要不插入数据
将其插入查询中。
$query = "INSERT INTO affiliates (affname,title,fname,lname,add1,add2,add3,city,county,country,pcode,email,password,paymethod) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
变化
$query = "INSERT INTO `affiliates` (aid,affname,title,fname,lname,add1,add2,add3,city,county,country,pcode,email,password,paymethod) VALUES (,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
到:
$query = "INSERT INTO `affiliates` (aid,affname,title,fname,lname,add1,add2,add3,city,county,country,pcode,email,password,paymethod) VALUES (NULL,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
或
$query = "INSERT INTO `affiliates` (affname,title,fname,lname,add1,add2,add3,city,county,country,pcode,email,password,paymethod) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
你试图插入15列
1)援助
2)affname
3)标题
4)FNAME
5)lname的
6)ADD1
7)ADD2
8)ADD3
9)城市
10)县
11)国家
12)的pcode
13)电子邮件
14)密码
15)paymethod
but here you are metioning only 14
1 2 3 4 5 6 7 8 9 10 11 12 13 14
,?,?,?,?,?,?,?,?,?,?, ?, ?, ?, ?
s s s s s s s s s s s s s s
还有这里只有14
$ _ POST [ 'affname'],$ _ POST [ '标题'],$ _ POST [” FNAME '],$ _ POST [' L-NAME '],$ _ POST [' ADD1 '],$ _ POST [' ADD2 '],$ _ POST [' ADD3 '],$ _ POST [' 城市 '],$ _ POST [' 县” ],$ _ POST ['country'],$ _ POST ['pcode'],$ _ POST ['email'],$ _ POST ['password'],$ _ POST ['paymethod']
我给了更新的查询等,虽然没有错误现在显示,但没有被存储 – Chris
错误信息是? –
该SQL无效,因此您的准备工作可能会失败。我可以猜出错误。 '(,?,?,?,?,?,?,?,?,?,?,?,?'缺少结尾括号和开头后的内容。 –