为什么我的变量不能设置?PHP
因此,$bays为什么我的变量不能设置?PHP,php,mysql,variables,post,Php,Mysql,Variables,Post,因此,$bays$wheelnumber和$lengthhours在表单中设置,并在表单发布到此处时设置。但无论我做什么,变量都不会写入数据库。我尝试过直接在代码中设置它们(即,$bays='5'),但仍然不起作用。但是当我设置':number'=>$\u POST['wheelnumber']时,它工作了!!!!当我回显变量时,也会显示,这样我就知道它们已经设置好了。有人请帮忙。这让我头疼 $bays = $_POST['bays']; $wheelnumber = $_POS
$wheelnumber
和$lengthhours
在表单中设置,并在表单发布到此处时设置。但无论我做什么,变量都不会写入数据库。我尝试过直接在代码中设置它们(即,$bays='5'
),但仍然不起作用。但是当我设置':number'=>$\u POST['wheelnumber']
时,它工作了!!!!当我回显变量时,也会显示,这样我就知道它们已经设置好了。有人请帮忙。这让我头疼
$bays = $_POST['bays'];
$wheelnumber = $_POST['wheels'];
$lengthhours = $_POST['length'];
//create user id
$id = rand(1000000,99999990);
if ($bays = ""){
$bays = "1";}
$length = $lengthours / $bays;
if ($wheelnumber = ""){
$wheelnumber = "1";}
//create wheel number
$name = "Wheel " . $wheelnumber;
try {
$connect = mysql_connect("localhost","root", "toor");
if (!$connect) {
die(mysql_error());
}
//insert into database with a prepared statement
$stmt = $db->prepare('INSERT INTO wheels (name,number,id,stackid,length,farmid) VALUES (:name, :number, :id, :stackid, :length, :farmid)');
$stmt->execute(array(
':name' => $name,
':number' => $wheelnumber,
':id' => $id,
':stackid' => $stack1,
':length' => $lengthhours,
':farmid' => $farmid,
));
while ($bays > 0) {
$bayname = "Bay " . $bays;
$bid = rand(1000000,99999990);
//insert into database with a prepared statement
$stmt = $db->prepare('INSERT INTO bays (name,id,wheelid,length,farmid) VALUES (:name, :id, :wheelid, :length, :farmid)');
$stmt->execute(array(
':name' => $bayname,
':id' => $bid,
':wheelid' => $id,
':length' => $length,
':farmid' => $farmid,
));
$bays = $bays - 1;
}
你的线路
$wheelnumber = $_POST['wheels'];
应该是
$wheelnumber = $_POST['wheelnumber'];
您说,
$bays
$wheelnumber
和$lengthhours
是在表单中设置的,但您的代码从不同名称的变量收集数据,即
$bays = $_POST['bays'];
$wheelnumber = $_POST['wheels'];
$lengthhours = $_POST['length'];
应该是这样吗
$bays = $_POST['bays'];
$wheelnumber = $_POST['wheelnumber'];
$lengthhours = $_POST['lengthhours'];
如果测试是错误的,那么这些都是错误的
if ($bays = ""){
$bays = "1";
}
$length = $lengthours / $bays;
if ($wheelnumber = ""){
$wheelnumber = "1";
}
相等的测试是=
,因此将其更改为
if ($bays == ""){
$bays = "1";
}
$length = $lengthours / $bays;
if ($wheelnumber == ""){
$wheelnumber = "1";
}
您似乎也在连接mysql\uucode>数据库扩展,但随后尝试使用mysqli\ucode>或PDO
数据库扩展语法。
3个MySQL数据库扩展不能像那样互换,选择一个并坚持它
i、 e
正在使用mysql\uu
数据库扩展,并且
$stmt = $db->prepare('INSERT INTO wheels (name,number,id,stackid,length,farmid) VALUES (:name, :number, :id, :stackid, :length, :farmid)');
正在使用mysqli
或PDO
数据库扩展
还有$db
来自哪里
另外,您似乎已经编码了一个Try/Catch块,但我不确定您是否编码了Catch部分,代码不完整,因此这里可能我错了您可以先将if($bays=”“)
更改为if(empty($bays))
或if($bays==“”)
这已经得到了回答。如果您要拼凑其他地方的代码,请确保所有代码都兼容。您看起来像是在使用mysql\ucode>数据库扩展进行连接,但他们试图使用mysqli\ucode>或PDO数据库扩展进行查询。它们不是交叉兼容的!数据库的怪物可能的复制品是答案吗?这是个问题吗?这是评论吗?谁能说呢?嗨,艾伦,这是一个提议的解决方案——指出问题中的一行代码并建议更正。这是一个疑问。以问号结束。答案就像你的问题X是因为A,B和C而发生的。要解决,就做Y。这样,D和E就会发生,解决你的问题。是鸟吗?是飞机吗不,阿兰马查多
$stmt = $db->prepare('INSERT INTO wheels (name,number,id,stackid,length,farmid) VALUES (:name, :number, :id, :stackid, :length, :farmid)');