我有一个令人困惑的问题,我似乎无法理解......我希望有人能指出我正确的方向......
我有两个SQL语句: - 第一个将表单中的信息输入数据库. - 第二个从上面输入的数据库中获取数据,发送电子邮件,然后记录交易的详细信息
问题是看起来单引号只在第二个条目上触发MySQL错误!第一个实例没有问题,但第二个实例触发了mysql_error().
表单中的数据是否与表单中捕获的数据处理不同?
查询#1 - 这没有问题(并且没有转义单引号)
$result = mysql_query("INSERT INTO job_log
(order_id, supplier_id, category_id, service_id, qty_ordered, customer_id, user_id, salesperson_ref, booking_ref, booking_name, address, suburb, postcode, state_id, region_id, email, phone, phone2, mobile, delivery_date, stock_taken, special_instructions, cost_price, cost_price_gst, sell_price, sell_price_gst, ext_sell_price, retail_customer, created, modified, log_status_id)
VALUES
('$order_id', '$supplier_id', '$category_id', '{$value['id']}', '{$value['qty']}', '$customer_id', '$user_id', '$salesperson_ref', '$booking_ref', '$booking_name', '$address', '$suburb', '$postcode', '$state_id', '$region_id', '$email', '$phone', '$phone2', '$mobile', STR_TO_DATE('$delivery_date', '%d/%m/%Y'), '$stock_taken', '$special_instructions', '$cost_price', '$cost_price_gst', '$sell_price', '$sell_price_gst', '$ext_sell_price', '$retail_customer', '".date('Y-m-d …Run Code Online (Sandbox Code Playgroud) 我搜索过网络,到目前为止我所看到的是你可以使用mysql_和mysqli_一起意义:
<?php
$con=mysqli_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysql_close($con);
echo "Done";
?>
Run Code Online (Sandbox Code Playgroud)
要么
<?php
$con=mysql_connect("localhost", "root" ,"" ,"mysql");
if( mysqli_connect_errno( $con ) ) {
echo "failed to connect";
}else{
echo "connected";
}
mysqli_close($con);
echo "Done";
?>
Run Code Online (Sandbox Code Playgroud)
有效,但是当我使用这段代码时,我得到的是:
Connected
Warning: mysql_close() expects parameter 1 to be resource, object given in D:\************.php on line 9
Done
Run Code Online (Sandbox Code Playgroud)
对于第一个和相同的除外mysqli_close().对于第二个.
问题是什么?我不能使用mysql_和mysqli在一起?还是正常的?我可以检查连接是否有效吗?(if(mysq...))
if (phpversion() >= '4.3.0'){
$string = mysqli_real_escape_string($string);
}else{
$string = mysqli_escape_string($string);
}
Run Code Online (Sandbox Code Playgroud)
所有文档mysqli_real_escape_string似乎表明这是一个有效的代码 - 不明白?
我试图从用户收集数据,但我仍然收到此错误.
语法错误,意外'名称'(T_STRING).
这里产生这个错误的代码行;
$name = mysqli_escape_string("$_POST['name']");
Run Code Online (Sandbox Code Playgroud)