我正在尝试使用php脚本编辑sql表中的记录。我可以加载一个表单,让我编辑文本,但是当我按下提交时它不会保存新的记录名称。它只是将我重定向到没有编辑的表格页面。
(包括DB)
<Modal animation={false} show={props.showSecondForm} onHide={props.closeWholeModal}>
<Grid>
<Modal.Header style={{ color: 'white', paddingBottom: 100, borderBottom: 'none' }} closeButton>
</Modal.Header>
<Modal.Body style={{ color: 'white', paddingBottom: 100 }}>
<Row>
<Col xs={12} md={6} mdOffset={3}>
<h4 style={{ color: 'white', fontSize: '1.5em', marginBottom: 20 }}>Let's get a little more information</h4>
</Col>
</Row>
<form>
<Row>
<Col xs={12} md={6} mdOffset={3}>
<FormGroup controlId="type" validationState={props.validation.platformName}>
<FormControl
style={{ borderRadius: 3, height: 60 }}
className="customInputText customSelect"
componentClass="select"
name="ecommercePlatformName"
placeholder="shopify"
value={value.ecommercePlatformName}
onChange={props.onChange}
>
<option value="">Choose your ecommerce platform</option>
<option value="shopify">Shopify</option>
<option value="bigcommerce">Bigcommerce</option>
<option value="magento">Magento</option>
<option value="woocommerce">WooCommerce</option>
<option value="volusion">Volusion</option>
<option value="salesforce commerce cloud">Salesforce Commerce Cloud</option>
<option value="3dcart">3DCart</option>
<option value="etsy">Etsy</option>
<option value="none">None of the Above</option>
</FormControl>
{props.validation.platformName === 'error' ? <HelpBlock>Please select a store.</HelpBlock> : null }
</FormGroup>
</Col>
</Row>
{
(value.ecommercePlatformName === 'bigcommerce') ?
<Row>
<Col xs={12} md={6} mdOffset={3}>
<FormGroup validationState={props.validation.storeName}>
<FormControl
style={{ borderRadius: 3, height: 60 }}
className="customInputText"
type="text"
name="ecommerceStoreName"
placeholder="Ecommerce Store Name"
value={value.ecommerceStoreName}
onChange={props.onChange}
/>
{props.validation.storeName === 'error' ? <HelpBlock>Please enter a store name.</HelpBlock> : null }
</FormGroup>
</Col>
</Row> : null
}
{
(value.ecommercePlatformName === 'shopify') ?
<Row>
<Col xs={12} md={6} mdOffset={3}>
<FormGroup validationState={props.shopifyStoreURLValidation}>
<FormControl
style={{ borderRadius: 3, height: 60 }}
className="customInputText"
type="text"
name="shopifyStoreURL"
placeholder="Shopify Store URL"
value={value.shopifyStoreURL}
onChange={props.onChange}
/>
{props.shopifyStoreURLValidation === 'error' ? <HelpBlock>Not a valid Shopify store URL</HelpBlock> : null }
</FormGroup>
</Col>
</Row> : null
}
<Row>
<Col xs={12} md={6} mdOffset={3}>
<FormGroup controlId="firstName" validationState={props.validation.firstName}>
<FormControl
style={{ borderRadius: 3, height: 60 }}
className="customInputText"
type="text"
name="firstName"
placeholder="First Name"
value={value.firstName}
onChange={props.onChange}
/>
{props.validation.firstName === 'error' ? <HelpBlock>Please enter your first name.</HelpBlock> : null }
</FormGroup>
</Col>
</Row>
<Row>
<Col xs={12} md={6} mdOffset={3}>
<FormGroup controlId="lastName" validationState={props.validation.lastName}>
<FormControl
style={{ borderRadius: 3, height: 60 }}
className="customInputText"
type="text"
name="lastName"
placeholder="Last Name"
value={value.lastName}
onChange={props.onChange}
/>
{props.validation.lastName === 'error' ? <HelpBlock>Please enter your last name.</HelpBlock> : null }
</FormGroup>
</Col>
</Row>
<Row>
<Col xs={12} md={6} mdOffset={3}>
<FormGroup validationState={props.validation.phoneNumber}>
<FormControl
style={{ borderRadius: 3, height: 60 }}
className="customInputText"
type="text"
name="phone"
placeholder="Phone Number"
value={value.phone}
onChange={props.onChange}
/>
{props.validation.phoneNumber === 'error' ? <HelpBlock>Please enter your phone number.</HelpBlock> : null }
</FormGroup>
</Col>
</Row>
<Row>
<Col xs={12} md={6} mdOffset={3}>
<Button
id="register-button"
style={{ paddingTop: 20, paddingBottom: 20 }}
className="saveButton pull-right"
onClick={props.register}
>
REGISTER
</Button>
<Button
style={{ paddingTop: 20, paddingBottom: 20, marginRight: 10 }}
className="saveButton pull-right"
onClick={() => props.modalChange('back')}
>
BACK
</Button>
</Col>
</Row>
<Row style={{marginTop: 15}}>
<Col xs={12} md={6} mdOffset={3}>
<p style={{ color: 'white', backgroundColor: 'transparent', fontSize: 10, textAlign: 'center' }}>
By creating an account, you agree to our <a className="footer-text" href="/privacy-policy">Privacy Policy</a> and <a className="footer-text" href="/terms-of-service">Terms & Conditions</a>
</p>
</Col>
</Row>
</form>
</Modal.Body>
</Grid>
</Modal>
handleFormChange(event) {
const target = event.target;
const name = target.name;
let value = (target.type === 'checkbox') ? target.checked : target.value;
if (name === 'phone') {
value = this.phoneFormat(value);
}
const newUser = Object.assign({}, this.state.regUser, { [name]: value });
if (name === 'shopifyStoreURL') {
// this.setState({ regUser: newUser }, this.testShopifyURL);
this.setState({ regUser: newUser });
} else {
this.setState({ regUser: newUser });
}
谢谢!
答案 0 :(得分:0)
PHP doc说:
参数标识符。对于使用命名占位符的预准备语句,这将是
:name
形式的参数名称。对于使用问号占位符的预准备语句,这将是参数的1索引位置。
在您的代码中,您使用"s"
作为bindParam
的参数!
<?php
function renderForm($ArtistName = '', $error = '', $ArtistID = '')
{
//
}
if (isset($_GET['submit'])){
if (isset($_POST['ArtistID'])){
if (is_numeric($_GET['ArtistID'])){
$ArtistID = $_GET['ArtistID'];
$ArtistName = htmlentities($_POST['ArtistName'], ENT_QUOTES);
if ($ArtistName == ''){
$error = 'ERROR: Please fill in all required fields!';
renderForm($ArtistName, $error, $ArtistID);
}else{
if ($stmt = $conn->prepare("UPDATE Artists SET ArtistName = ? WHERE ArtistID=?")){
$stmt->bind_param(1, $ArtistName);
$stmt->bind_param(2, $ArtistID, PDO::PARAM_INT);
$stmt->execute();
$stmt->close();
}else{
echo "ERROR: could not prepare SQL statement.";
}
}
}
}
}
?>